文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

从0开始配置服务器PHP + Nginx

2023-09-16 06:26

关注

用的是阿里云ECS云服务器,不过应该都是些通用的指令,差不了多少,无图形化界面
基本上是用来搭在一些php项目,其余配置后续再说,本次先记录Nginx+PHP+mysql配置

在电脑上远程登录服务器

ssh -p[端口号] [用户名]@[IP]// 如 ssh -p22 root@8.888.888.888

若是在清空云盘后重新进行ssh连接,可能会遇到

@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@    WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED!     @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@

解决方案

ssh-keygen -R [IP]

选择yes,重新连接即可

进行远程连接后,就可以直接远程操作系统,操作逻辑上和自己电脑上打开cmd是一样的

创建web用户

在php与nginx中都需要使用,因此优先配置

创建用户命令,存在root用户产生bug的可能性,最好建个其他的

groupadd [group name]useradd -g [group name] [user name]// ykark - yukiaruki

php配置

首先从php官网下载php安装包,这里使用的是8.1.10版本

wget https://www.php.net/distributions/php-8.1.10.tar.gztar -xzvf php-8.1.10.tar.gz 

进入解压后的文件夹,进行configure编译,这里附带了一些会用到的库,也可以自行查找添加其他的

./configure --prefix=/usr/local/php --with-mysqli --with-openssl --with-pdo-mysql --enable-fpm

如果之前没有进行过环境配置,就会提示

Package 'libxml-2.0', required by 'virtual:world', not found

这时就用yum search libxml能找到libxml2.x86_64,再使用yum install libxml2-devel

其他的类似问题也都安装好就完事,可能会用到的一些:

// libxml-2.0yum install libxml2-devel// sqlite3yum install sqlite-devel

进行make & make install

sapi/cli/php错误:在MakeFile中的EXTRA_LIBS 最后加上 -liconv

PHP配置文件

因为php-fpm中,php-fpm.conf的默认路径基本完全没有,所以要自己配置好piderror_log

复制www.conf并且修改group和user选项,改成之前创建的用户和组

cp /usr/local/php/etc/php-fpm.d/www.conf.default /usr/local/php/etc/php-fpm.d/www.conf

启用php-fpm.conf最后一行的include,写/usr/local/php/etc/php-fpm.d/*.conf或者自己的文件位置

运行后没有报错就是成功了,可以ps aux|grep php-fpm查询进程,需要关闭时就kill进程号

nginx 服务器配置

一些相关的依赖库

// C/C++编译器yum  install  gcc  gcc-c++ -y// zlib压缩yum  install  zlib  zlib-devel -y// 正则yum install  pcre  pcre-devel -y// opensslyum  install  openssl  openssl-devel -y

安装nginx

nginx下载页面下载压缩包解压,注意不要把解压后的文件夹命名为nginx

这里以nginx-1.22.0.tar.gz为例,解压后进入文件夹

./configure --prefix=[安装位置](默认是/usr/local/nginx) --with-http_ssl_module

之后进行makr & make install

make中的踩坑,如果版本比较高可能不会出现这些问题

ngx_murmurhash.o出错

/nginx/objs/Makefile中CFLAGS = … 删除其中的 -Werror

‘struct crypt_data’没有名为‘current_salt’的成员

进入相应文件注释掉出错的内容

最后如果像⬇️一样,就是成功了

make[1]: 进入目录“/usr/local/nginx”sed -e "s|%%PREFIX%%|/usr/local/nginx|" \-e "s|%%PID_PATH%%|/usr/local/nginx/logs/nginx.pid|" \-e "s|%%CONF_PATH%%|/usr/local/nginx/conf/nginx.conf|" \-e "s|%%ERROR_LOG_PATH%%|/usr/local/nginx/logs/error.log|" \< man/nginx.8 > objs/nginx.8make[1]: 离开目录“/usr/local/nginx”

之后进行make install安装

*如果出现cp: “conf/koi-win” 与"/usr/local/nginx/conf/koi-win" 为同一文件报错,就是命名的问题,改改重装就好

至此nginx已经安装完成,在新创建的nginx/sbin中./nginx可以启动

停止运行就kill进程号

修改nginx/conf/nginx.conf配置

用户名的配置与php相同

user [用户名] [用户组];worker_processes  1;

绑定域名,配置虚拟主机的ssl与php

域名绑定等内容根据网站提示的来就好,这里不多做讲解,假设已经备案了域名并且获取了免费ssl证书(阿里云搜索ssl就可以找到免费的)

SSL证书管理页面下载nginx版本的证书,并且在nginx/conf下新建cert目录储存证书,方便管理

conf下新建sites-enabled目录用来储存,新建域名命名的文件并配置以下内容,记得把注释部分去掉

server {    listen 443 ssl;    // 域名    server_name example.com;    // 部署的web项目所在目录    root /var/www/html;    index index.html index.htm index.php;    // 这里指向证书位置    ssl_certificate  /usr/local/nginx/conf/cert/example.com.pem;    ssl_certificate_key /usr/local/nginx/conf/cert/example.com.key;    ssl_session_timeout 5m;    // ssl加密    ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4;    ssl_protocols TLSv1 TLSv1.1 TLSv1.2;    ssl_prefer_server_ciphers on;    location / {        index index.html index.htm index.php;    }    location ~ \.php$ {            fastcgi_pass   127.0.0.1:9000;            fastcgi_index  index.php;            fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;            include        fastcgi_params;        }} 

http重定向,可以使http直接跳转到https(我没试过,先记着

server {    listen 80;    server_name dawnguo.cn;    rewrite ^(.*)$ https://dawnguo.cn;}

在nginx.conf的http内写入

include /etc/nginx/conf.d/*.conf;

修改后重启nginx

./nginx -s reload// 如果之前没有启动过就直接./nginx

安装mysql

下载安装包地址:mysqlDownload

这里可以查看一下yum内glibc库的最新版本,如果没有到2.34以上的版本,建议下载旧版本的mysql安装包,不然很多依赖库需要手动编译

解压后按顺序安装:

// 这里只打前缀,后面的部分自己补全就可rpm -ivh mysql-community-commonrpm -ivh mysql-community-develrpm -ivh mysql-community-clientrpm -ivh mysql-community-server

最后可能会出现这个提示

references path below legacy directory /var/run/, updating /var/run/mysqld → /run/mysqld; please update the tmpfiles.d/ drop-in file accordingly

在相应文件夹中的mysql.conf内把最后一行的/var/run/mysqld改成/run/mysqld即可

完成rpm安装后,service mysqld start即可启动mysql服务

连接mysql

首先获取初始密码

more /var/log/mysqld.log |grep password

使用这个密码登录数据库

mysql -uroot -p

查看密码难易度,可以修改复杂度,这样就可以设置简单密码(也可以不改)

// 查看密码设置 SHOW VARIABLES LIKE 'validate_password%'; // 修改密码难度示例,其他选项的修改方法相同 set global validate_password_policy = 0; // 修改密码  alter user 'root'@'localhost' identified by 'NewPassword'

这样就完成密码修改和初始化了

如果使用防火墙,烦请自行查阅如何开启端口,同时需要设置服务器内端口允许访问

来源地址:https://blog.csdn.net/Yuki_Aruki/article/details/126778987

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-服务器
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯