CentOS 7 安装PHP、Nginx开发环境

安装如下软件

  • PHP7&PHP-FPM
  • Nginx 1.10+
  • MySQL 5.7
  • 安装PHP&PHP-FPM

安装PHP

首先更新一下CentOS7系统,对系统软件做一下升级,这里不升级内核。
使用root权限,注意这里使用upgrade,而不是update(它会升级内核,这里我们不需要)
yum upgrade
我需安装最新的PHP,默认源安装的PHP版本是5.4左右,差不多已经过时了,这里先安装新的源。

安装源

  1. rpm -Uvh https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm
  2. rpm -Uvh https://mirror.webtatic.com/yum/el7/webtatic-release.rpm

安装PHP和PHP-FPM

  1. yum install php71w php71w-cli php71w-fpm
  2. //安装相关扩展
  3. yum install php71w-mbstring php71w-common
  4. yum install php71w-gd php71w-mcrypt
  5. yum install php71w-mysqlnd(建议安装mysqlnd驱动形式) php71w-xml

如果之前安装过php-mysql扩展,则需要先卸载php-mysql,因为在安装php-mysqlnd的时候,会有冲突、删除原先的php-mysql扩展的命令是:yum remove php-mysql

  1. yum install php71w-soap php71w-xmlrpc

安装Nginx

Nginx是当下流行Web服务器软件,需要用它提供Web服务配置站点等。可选的还有Apache、Lighttpd等。

安装nginx

  1. yum install nginx
  2. //启动nginx
  3. systemctl start nginx
  4. //使用systemctl设置开机启动
  5. systemctl enable nginx
  6. 根据之前设置的网络,可以直接在Mac浏览器里面访问http://192.168.56.101:80看nginx是否已经启动。我发现并不能访问成功,这里是CentOS7的防火墙导致的,打开80端口
  7. firewall-cmd -permanent -zone=public -add-service=http
  8. firewall-cmd -reload
  9. 重试,显示nginx欢迎页面,Nginx设置成功。

安装MySQL

MySQL是关系型数据库软件,用来存储数据。安装MySQL只需要简单的指令,最新版本是5.7所以先安装最新的源。

  1. //安装MySQL源
  2. yum install https://dev.mysql.com/get/mysql57-community-release-el7-9.noarch.rpm
  3. //安装MySQL
  4. yum install mysql-community-server
  5. //启动MySQL
  6. systemctl start mysqld
  7. //设置开机启动
  8. systemctl enable mysqld
  9. //找到随机生成的密码
  10. grep A temporary password is generated for root@localhost /var/log/mysqld.log |tail -1
  11. //执行下面的命令,设置MySQL(需要上面的密码)
  12. mysql_secure_installation
  13. 使用mysql -uroot -p设置的密码连接成功,MySQL安装完成。

设置Nginx和PHP-FPM

我已经安装好需要程序,要想PHP请求被Nginx接收并转交给PHP-FPM再由PHP解释器执行返回结果,还需要做一些配置。

  1. //启动PHP-FPM
  2. systemctl start php-fpm
  3. //设置开机启动
  4. systemctl enable php-fpm

配置nginx站点:

  1. vi /etc/nginx/conf.d/dev.conf
  2. //写入以下内容
  3. server {
  4. listen 80;
  5. server_name dev.com;
  6. root /data/www/dev;
  7. index index.php index.html;
  8. location / {
  9. try_files $uri $uri/ /index.php?$query_string;
  10. }
  11. location ~ \.php$ {
  12. fastcgi_pass 127.0.0.1:9000;
  13. fastcgi_index index.php;
  14. include fastcgi.conf;
  15. fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
  16. }
  17. }

重启Nginx

  1. systemctl restart nginx

在/data/www/dev增加phpinfo.php文件写入以下内容

  1. <?php
  2. phpinfo();

因为这里配置了一个名为dev.com的站点,在主机(我的Mac电脑)上是无法解析的域名,所以要设置一个host,打开Mac的/etc/hosts加入以下内容:

192.168.1.101 dev.com
打开Mac的浏览器输入http://dev.com/phpinfo.php就可以看到PHP的信息了。如果报403,说明没有权限,试着设置文件路径的权限chmod 777 -R /data/www/dev

如果设置之后还报File not found,那可能是SELinux限制了访问,修改相关配置关闭SELinux。

  1. vi /etc/sysconfig/selinux
  2. SELINUX=disabled
  3. //重启系统
  4. reboot

刷新浏览器,PHP信息的页面正常展示。 到此PHP环境就搭建OK了。