LNMP服务器安装配置(Rhel+Nginx+PHP+MySQL)

本文涉及的产品
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS MySQL,高可用系列 2核4GB
RDS MySQL Serverless 高可用系列,价值2615元额度,1个月
简介:

1、关闭selinux、配置防火墙,开启80、3306端口

1
2
3
4
5
6
7
8
9
10
11
12
13
[root@localhost ~] # cp /etc/sysconfig/iptables /etc/sysconfig/iptablesbak
[root@localhost ~] # vim /etc/sysconfig/iptables
-A INPUT -i lo -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 22 -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 3306 -j ACCEPT
-A INPUT -j REJECT --reject-with icmp-host-prohibited
[root@localhost ~] # /etc/init.d/iptables restart
[root@localhost ~] # cp /etc/sysconfig/selinux /etc/sysconfig/selinuxbak
[root@localhost ~] # cat /etc/sysconfig/selinux|grep -v "#"
SELINUX=disabled
SELINUXTYPE=targeted 
[root@localhost ~] #

2、安装nginx

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
[root@localhost ~] # rpm -e --nodeps `rpm -qa|egrep -i "httpd|php"`  #删除系统自带的软件包
[root@localhost ~] # wget   #下载、安装第三方yum源
[root@localhost ~] # sh ./atomic   #安装
Do you agree to these terms? ( yes /no ) [Default:  yes yes
Configuring the [atomic] yum archive  for  this system 
Installing the Atomic GPG keys: OK
OK
Enable repo by default? ( yes /no ) [Default:  yes ]: 
The Atomic Rocket Turtle archive has now been installed and configured  for  your system
The following channels are available:
[root@localhost ~] # yum check-update   #更新yum源
[root@localhost ~] # yum -y install nginx 
[root@localhost ~] # service nginx start
Starting nginx:                                            [  OK  ]
[root@localhost ~] #

3、安装MySQL

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
[root@localhost ~] # yum install mysql mysql-server -y
[root@localhost ~] # chkconfig mysqld on
[root@localhost ~] # /etc/init.d/mysqld start
[root@localhost ~] # cp /usr/share/mysql/my-medium.cnf /etc/my.cnf 
cp : overwrite ` /etc/my .cnf'? y
[root@localhost ~] # mysql_secure_installation   #为root账户设置密码
Enter current password  for  root (enter  for  none): 
OK, successfully used password, moving on...
Set root password? [Y /n ] Y
New password: 
Re-enter new password: 
Password updated successfully!
Reloading privilege tables..
  ... Success!
  Remove anonymous  users ? [Y /n ] Y  
  ... Success!
  Disallow root login remotely? [Y /n ] Y
  ... Success!
  Remove  test  database and access to it? [Y /n ] Y
  - Dropping  test  database...
  ... Success!
  - Removing privileges on  test  database...
  ... Success!
  Reload privilege tables now? [Y /n ] Y
  ... Success!
  Thanks  for  using MySQL!
  [root@localhost ~] # service mysqld restart

4、安装PHP5

1
2
3
4
5
6
[root@localhost ~] # yum install php php-fpm -y
[root@localhost ~] # yum install php-mysql php-gd libjpeg* php-imap php-ldap php-odbc php-pear php-xml php-xmlrpc php-mbstring php-mcrypt  php-bcmath php-mhash libmcrypt -y  #安装PHP组件,使 PHP5 支持 MySQL
[root@localhost ~] # chkconfig php-fpm on
[root@localhost ~] # /etc/init.d/php-fpm start
Starting php-fpm:                                          [  OK  ]
[root@localhost ~] #

5、配置nginx支持php

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
[root@localhost ~] # cp /etc/nginx/nginx.conf /etc/nginx/nginx.confbak
[root@localhost ~] # vim /etc/nginx/nginx.conf
user              nginx nginx;     #修改nginx运行账号为:nginx组的nginx用户
worker_processes  1;
[root@localhost ~] # cp /etc/nginx/conf.d/default.conf /etc/nginx/conf.d/default.confbak
[root@localhost ~] # vim /etc/nginx/conf.d/default.conf
     location / {
         root    /usr/share/nginx/html ;
         index  index.php index.html index.htm;    #增加index.php
         # example
         #ModSecurityEnabled on;
         #ModSecurityConfig /etc/nginx/modsecurity.conf;
     }
      location ~ \.php$ {     #取location的注释,并将fastcgi_param行的参数,改为$document_root$fastcgi_script_name,或者使用绝对路径
         root           html;
         fastcgi_pass   127.0.0.1:9000;
         fastcgi_index  index.php;
         fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
         include        fastcgi_params;
     }   
  [root@localhost ~] # service nginx restart
Stopping nginx:                                            [  OK  ]
Starting nginx:                                            [  OK  ]
[root@localhost ~] #

6、php配置

1
2
3
4
5
6
7
8
[root@localhost ~] # cp /etc/php.ini /etc/php.inibak
[root@localhost ~] # vim /etc/php.ini
  878  date .timezone = PRC
  314 disable_functions = passthru, exec ,system,chroot,scandir, chgrp , chown ,shell_exec,proc_open,proc_get_status, in      i_alter,ini_alter,ini_restore,dl,openlog,syslog,readlink, symlink ,popepassthru,stream_socket_server,escapesh     ellcmd,dll,popen,disk_free_space,checkdnsrr,checkdnsrr,getservbyname,getservbyport,disk_total_space,posix_c     termid,posix_get_last_error,posix_getcwd, posix_getegid,posix_geteuid,posix_getgid, posix_getgrgid,posix_ge     tgrnam,posix_getgroups,posix_getlogin,posix_getpgid,posix_getpgrp,posix_getpid, posix_getppid,posix_getpwna     m,posix_getpwuid, posix_getrlimit, posix_getsid,posix_getuid,posix_isatty, posix_kill,posix_mkfifo,posix_se     tegid,posix_seteuid,posix_setgid, posix_setpgid,posix_setsid,posix_setuid,posix_strerror,posix_times,posix_     ttyname,posix_uname    #PHP禁用的函数,如果某些程序需要用到这个函数,可以删除,取消禁用。
   375 expose_php = Off     #禁止显示php版本的信息
   211 short_open_tag = ON    #支持php短标签
   308 open_basedir = .: /tmp/   #设置表示允许访问当前目录(即PHP脚本文件所在之目录)和/tmp/目录,可以防止php木马跨站,如果改了之后安装程序有问题(例如:nginx可能网站根目录下的文件会提示Access Denied),可以注销此行,或者直接写上程序的目录open_basedir = /usr/share/nginx/html/:/tmp/
   [root@localhost ~] #

7、配置php-fpm

1
2
3
4
5
6
[root@localhost ~] # cp /etc/php-fpm.d/www.conf /etc/php-fpm.d/www.confbak
[root@localhost ~] # vim /etc/php-fpm.d/www.conf
user = nginx
; RPM: Keep a group allowed to write  in  log  dir .
group = nginx
[root@localhost ~] #

8、测试

1
2
3
4
5
6
7
8
9
10
11
12
13
[root@localhost ~] # cd /usr/share/nginx/html/
[root@localhost html] # vim index.php
<?php
phpinfo();
?>
~   
[root@localhost html] # service nginx restart
Stopping nginx:                                            [  OK  ]
Starting nginx:                                            [  OK  ]
[root@localhost html] # service php-fpm restart
Stopping php-fpm:                                          [  OK  ]
Starting php-fpm:                                          [  OK  ]
[root@localhost html] #

在客户端浏览器输入服务器IP地址,可以看到相关的配置信息(无法查看可以将php.ini中expose_php设置为on、open_basedir注释掉,或者直接写上程序的目录)! 说明lnmp配置成功!



本文转自 justin_peng 51CTO博客,原文链接:http://blog.51cto.com/ityunwei2017/1733287,如需转载请自行联系原作者

相关实践学习
如何快速连接云数据库RDS MySQL
本场景介绍如何通过阿里云数据管理服务DMS快速连接云数据库RDS MySQL,然后进行数据表的CRUD操作。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助 &nbsp; &nbsp; 相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
相关文章
|
1月前
|
关系型数据库 MySQL Linux
查看Linux、Apache、MySQL、PHP版本的技巧
以上就是查看Linux、Apache、MySQL、PHP版本信息的方法。希望这些信息能帮助你更好地理解和使用你的LAMP技术栈。
88 17
|
2月前
|
关系型数据库 MySQL PHP
源码编译安装LAMP(HTTP服务,MYSQL ,PHP,以及bbs论坛)
通过以上步骤,你可以成功地在一台Linux服务器上从源码编译并安装LAMP环境,并配置一个BBS论坛(Discuz!)。这些步骤涵盖了从安装依赖、下载源代码、配置编译到安装完成的所有细节。每个命令的解释确保了过程的透明度,使即使是非专业人士也能够理解整个流程。
64 18
|
2月前
|
Ubuntu 应用服务中间件 网络安全
Nginx伪流媒体服务器搭建详细说明以及案例
Nginx伪流媒体服务器搭建步骤如下:1. 安装Nginx,根据系统选择命令;2. 编辑配置文件(/etc/nginx/nginx.conf),添加mp4相关设置;3. 创建视频目录/usr/share/nginx/html/videos并上传视频;4. 重启Nginx应用更改;5. 通过浏览器访问视频,如http://your_server_ip/videos/example.mp4。注意启用mp4模块,确保视频格式支持伪流媒体播放。
|
3月前
|
关系型数据库 MySQL 网络安全
如何排查和解决PHP连接数据库MYSQL失败写锁的问题
通过本文的介绍,您可以系统地了解如何排查和解决PHP连接MySQL数据库失败及写锁问题。通过检查配置、确保服务启动、调整防火墙设置和用户权限,以及识别和解决长时间运行的事务和死锁问题,可以有效地保障应用的稳定运行。
207 25
|
3月前
|
应用服务中间件 PHP nginx
当你的nginx服务器和php服务器不在一起的时候,这个nginx 的root目录问题
两个服务器的网站代码目录需要对齐,docker容器里面也是一样
|
6月前
|
安全 关系型数据库 MySQL
PHP与MySQL动态网站开发实战指南####
——深入探索LAMP栈下的高效数据交互与处理技巧 ####
|
5月前
|
存储 编解码 应用服务中间件
使用Nginx搭建流媒体服务器
本文介绍了流媒体服务器的特性及各种流媒体传输协议的适用场景,并详细阐述了使用 nginx-http-flv-module 扩展Nginx作为流媒体服务器的详细步骤,并提供了在VLC,flv.js,hls.js下的流媒体拉流播放示例。
618 3
|
5月前
|
存储 关系型数据库 MySQL
PHP与MySQL动态网站开发:从基础到实践####
本文将深入探讨PHP与MySQL的结合使用,展示如何构建一个动态网站。通过一系列实例和代码片段,我们将逐步了解数据库连接、数据操作、用户输入处理及安全防护等关键技术点。无论您是初学者还是有经验的开发者,都能从中获益匪浅。 ####
|
5月前
|
关系型数据库 MySQL PHP
php实现一个简单的MySQL分页
通过本文的详细步骤和代码示例,我们实现了一个简单的PHP MySQL分页功能。主要步骤包括计算总记录数、设置分页参数、查询当前页的数据以及生成分页链接。这种分页方式适用于大多数Web应用,能够有效提升用户体验和页面响应速度。
171 4
|
6月前
|
SQL 关系型数据库 MySQL
PHP与MySQL的高效协同开发策略####
本文深入探讨了PHP与MySQL在Web开发中的协同工作机制,通过优化配置、最佳实践和高级技巧,展示了如何提升数据库交互性能,确保数据安全,并促进代码可维护性。我们将从环境搭建讲起,逐步深入到查询优化、事务管理、安全防护及性能调优等核心环节,为开发者提供一套实战驱动的解决方案框架。 ####