Centos7部署php项目
一、安装NGINX
添加nginx源
rpm -Uvh http://nginx.org/packages/centos/7/noarch/RPMS/nginx-release-centos-7-0.el7.ngx.noarch.rpm
安装并启动nginx
yum install nginx
systemctl enable --now nginx //启动
二、安装MySQL
安装并启动MySQL
yum install mariadb-server
systemctl enable --now mariadb
修改登录密码
mysqladmin -uroot password '密码'
登录数据库导入数据
三、安装PHP
安装php及扩展
yum install php php-mysql php-fpm php-mbstring php-gd php-pear php-mhash php-eaccelerator php-cli php-imap php-ldap php-odbc php-pear php-xml php-xmlrpc php-mssql php-snmp php-soap php-tidy php-common php-devel php-pecl-xdebug phpmyadmin php-mcrypt -y
编辑/etc/php.ini文件,修改参数
cgi.fix_pathinfo=0
cgi.fix_pathinfo,是用来对设置cgi模式下为php是否提供绝对路径信息或PATH_INFO信息。没有这个参数之前PHP设置绝对路径PATH_TRANSLATED的值为SCRIPT_FILENAME,没有PATH_INFO值。设置cgi.fix_pathinfo=1后,cgi设置完整的路径信息PATH_TRANSLATED的值为SCRIPT_FILENAME,并且设置PATH_INFO信息;如果设为cgi.fix_pathinfo=0则只设置绝对路径PATH_TRANSLATED的值为SCRIPT_FILENAME。
编辑/etc/php-fpm.d/www.conf文件,修改参数
listen = /var/run/php-fpm/php-fpm.sock
使PHP-FPM使用Unix套接字,这避免了TCP的开销。默认情况下监听端口 9000 。
启动php-fpm服务
systemctl enable --now php-fpm
四、配置nginx站点
修改/etc/nginx/conf.d/default.conf文件,添加如下参数
server {
listen 80;
server_name www.sange.com; #需要修改客户端hosts文件
root /opt/data; #PHP项目根路径
index index.php index.html index.htm;
location / {
try_files $uri $uri/ =404;
}
error_page 404 /404.html;
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root /usr/share/nginx/html;
}
location ~ \.php$ {
try_files $uri =404;
fastcgi_pass unix:/var/run/php-fpm/php-fpm.sock;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
}
重启nginx服务
systemctl restart nginx
五、项目测试部署
新建/opt/data/index.php文件,打开文件编辑,添加
<?php phpinfo()?>
浏览器访问www.sange.com,可以看到php各种配置信息则说明配置成功,如
如果需要客户端登录数据库,服务器的mysql需要设置允许远程登录功能,授予用户访问权限。当浏览器访问需要连接数据库时,默认情况下会遇到一个错误提示,那就是SQLSTATE[HY000] [2003] Can't connect to MySQL server on '127.0.0.1' (13)。
标签:cgi,index,nginx,部署,Centos7,fpm,PATH,php From: https://www.cnblogs.com/liwenlong-unix/p/17757365.html