发布于2022年11月4日3年前 关于这方面的教程可以说是一搜一大把,但都有点缺陷,在实际操作中各种坑,为了少踩坑。本文将为新手呈上最为全面的搭建教程。安装环境Nginx1.2PHP7.xMysql8.0安装Nginx添加 CentOS 7 EPEL 存储库,请运行以下命令:yum install epel-release安装Nginxyum install nginx启动 Nginx 服务systemctl start nginx开机启动sudo systemctl enable nginx安装Mysql8.0添加mysql库yum localinstall https://dev.mysql.com/get/mysql80-community-release-el7-1.noarch.rpm安装mysqlyum --enablerepo=mysql80-community install mysql-community-server启动mysqlsystemctl start mysqld.service修改root密码因为在mysql8中,在安装数据库时会设置默认密码。我们可以利用下面命令查看默认密码grep 'A temporary password is generated for root@localhost' /var/log/mysqld.log |tail -1初始化数据库sudo mysql_secure_installation这里会提示输入root的密码,即上一步获得的默认密码。然后从新输入root密码,一路输Y即可。不知道为什么,修改后程序不能连接登录。用下面命令重新修改root密码。mysql -u root -p use mysql; ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'youpassword'; systemctl restart mysqld #重启MySQL安装 PHP安装 Remi 存储库yum install http://rpms.remirepo.net/enterprise/remi-release-7.rpm检查 Remi 存储库中可用的 PHP 7+ 版本yum --disablerepo="*" --enablerepo="remi-safe" list php[7-9][0-9].x86_64你会看到这样的输出Loaded plugins: fastestmirror Loading mirror speeds from cached hostfile * remi-safe: mirrors.ukfast.co.uk Available Packages php70.x86_64 2.0-1.el7.remi remi-safe php71.x86_64 2.0-1.el7.remi remi-safe php72.x86_64 2.0-1.el7.remi remi-safe php73.x86_64 2.0-1.el7.remi remi-safe php74.x86_64 1.0-3.el7.remi remi-safe php80.x86_64 1.0-3.el7.remi 启用相应的 PHP 版本(这里以7.4为例)sudo yum-config-manager --enable remi-php74安装phpyum -y install php php-mysqlnd php-gd php-xml php-mbstring php-ldap php-pear php-xmlrpc php-zip php-cli php-fpm php-gd php-mysqlnd php-mbstring php-opcache php-pdo php-json配置文件配置php-fpm文件vim /etc/php-fpm.d/www.confuser和group变量默认为apache。我们需要将这些更改为nginx找到listen php-fpm将通过 TCP 侦听特定主机和端口。我们想要更改此设置,使其侦听本地套接字文件,因为这会提高服务器的整体性能。listen = /var/run/php-fpm/php-fpm.sock;最后,我们需要更改我们刚刚在listen指令中定义的套接字文件的所有者和组设置。找到listen.owner,listen.group和listen.mode指令。这些行默认被注释掉。通过删除;行开头的前置符号来取消注释。然后,将所有者和组更改为nginx:listen.owner = nginx listen.group = nginx listen.mode = 0660最后重启php-fpmsystemctl start php-fpm配置 Nginx 以处理 PHP目前的配置是无法访问php文件,我们还需要简单的配置下。Nginx 有一个专用目录,我们可以在其中使用服务器块将每个托管网站定义为单独的配置文件。这类似于 Apache 的虚拟主机。在默认安装中,此目录为空。我们将创建一个新文件作为此服务器上的默认 PHP 网站,它将覆盖/etc/nginx/nginx.conf文件中定义的默认服务器块。在/etc/nginx/conf.d目录中打开一个新文件vim /etc/nginx/conf.d/default.conf #内容如下: server { listen 80; #端口 可自行修改 如8080 server_name 192.168.x.x; #没有域名的话直接填写公网IP或内网IP root /var/www/html; #网站路劲 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 /var/www/html; #网站路劲 } #php配置部分 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 以应用更改:sudo systemctl restart nginx配置网站目录用户组和权限因为目前php和nginx都是以nginx的身份运行,而我们的目录有时候权限归root所有。所以访问网站会出现404。首先检查php和ngxin的用户组ps -ef | grep php ps -ef | grep nginx最后修改相应目录的用户组权限chown -R nginx:nginx /var/www/blog然后再次重启php和nginx即可配置PATHINFO像Typecho一样,我们需要开启PATHINFONginx默认是不支持PATHINFO的,所以需要更改支持PATHINFO的主机的配置文件。location ~ ^(.+\.php)(.*)$ { fastcgi_pass unix:/var/run/php-fpm/php-fpm.sock; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; fastcgi_split_path_info ^(.+\.php)(.*)$; fastcgi_param PATH_INFO $fastcgi_path_info; include fastcgi_params; }并配置etc/php.inicgi.fix_pathinfo=1最后重启nginx和php目前遇到的问题就这么多了,后面遇到问题在说吧! 版权属于:逍遥子大表哥本文链接:https://blog.bbskali.cn/2844.html按照知识共享署名-非商业性使用 4.0 国际协议进行许可,转载引用文章应遵循相同协议。
创建帐户或登录后发表意见