用的是阿里云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的默认路径基本完全没有,所以要自己配置好pid
,error_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