基于阿里云服务器环境搭建到项目上线系列
前言:最近购买了域名和一台阿里云服务器准备做点东西放上去,所以准备把环境搭建到项目上线的过程记录下来,计划一个系列6篇文章
- 基于阿里云服务器环境搭建到项目上线系列文章之一——putty使用秘钥登录远程服务器
- 基于阿里云服务器环境搭建到项目上线系列文章之二——搭建LNMP环境
- 基于阿里云服务器环境搭建到项目上线系列文章之三——安装git
- 基于阿里云服务器环境搭建到项目上线系列文章之四——安装composer
- 基于阿里云服务器环境搭建到项目上线系列文章之五——项目仓库github基本使用
- 基于阿里云服务器环境搭建到项目上线系列文章之六——项目部署
基于阿里云服务器环境搭建到项目上线系列文章之二——搭建LNMP环境
安装环境
- Linux CentOS7.4 64位
- PHP 7.3.6
- Nginx 1.8
- MySQL 5.7
PHP安装
提示:由于网络原因,方式1和方式2下载速度可能非常慢,可以通过方式3使用迅雷下载到本地,然后上传到服务器即可(如果网络不好,推荐方式3),具体视情况而定。
下载解压 php-7.3.6.tar.gz
方式1:
cd /root/
wget http://cn2.php.net/get/php-7.3.6.tar.xz/from/this/mirror
tar -xvf mirror
方式2:
cd /root/
wget https://www.php.net/distributions/php-7.3.6.tar.gz
tar -zxvf php-7.3.6.tar.gz
方式3:
下载地址:https://www.php.net/downloads.php
下载到本地后通过ftp等工具上传到服务器上自己习惯的目录,我这里上传到了root目录下
cd /root/
tar -zxvf php-7.3.6.tar.gz
安装 php-7.3.6
cd php-7.3.6
安装依赖:
yum -y install libjpeg libjpeg-devel libpng libpng-devel freetype freetype-devel libxml2 libxml2-devel zlib zlib-devel curl curl-devel openssl openssl-devel libzip*
更新软件扩展
yum -y upgrade
安装或更新cmake
卸载低版本cmake
yum -y remove cmake
cd /root/
wget https://cmake.org/files/v3.10/cmake-3.10.2-Linux-x86_64.tar.gz
tar zxvf cmake-3.10.2-Linux-x86_64.tar.gz
export CMAKE_HOME=/root/cmake-3.10.2-Linux-x86_64
export PATH=$PATH:$CMAKE_HOME/bin
source /etc/profile
此时,你再次查看cmake版本,就已经是3.10.2了:
cmake -version
配置php (现在只是安装一下必要的扩展,等你需要额外的扩展完全可以以后再安装)
cd /root/php-7.3.6
./configure --prefix=/usr/local/php --enable-fpm --with-fpm-user=nginx --with-fpm-group=nginx --with-mysqli --with-zlib --with-curl --with-gd --with-jpeg-dir --with-png-dir --with-freetype-dir --with-openssl --enable-mbstring --enable-xml --enable-session --enable-ftp --enable-pdo -enable-tokenizer --enable-zip
配置解释:
–prefix=/usr/local/php 这个是你的安装目录
–with-mysqli 这个是mysqli扩展
–with-fpm-user=nginx fpm用户
–with-fpm-group-nginx fpm用户组
此时会有错误提示如下:
checking for libzip... configure: error: system libzip must be upgraded to version >= 0.11
解决方案:
卸载低版本:
yum -y remove libzip-devel
下载安装新版本:
cd /root/php-7.3.6
wget https://libzip.org/download/libzip-1.5.1.tar.gz
tar -zxvf libzip-1.5.1.tar.gz
cd libzip-1.5.1
mkdir build
cd build
cmake ..
make && make install
cd /root/php-7.3.6/
再次执行./configure内容,错误提示:
configure: error: off_t undefined; check your library configuration
解决方案:
vim /etc/ld.so.conf
#添加如下几行
/usr/local/lib64
/usr/local/lib
/usr/lib
/usr/lib64
#保存退出
:wq
ldconfig -v # 使之生效
cd /root/php-7.3.6/
再次执行./configure内容,出现如下内容说明PHP可以继续安装了:
执行如下命令:
make && make install
添加PHP到环境变量
复制配置文件:
cp /root/php-7.3.6/php.ini-development /usr/local/php/lib/php.ini
添加到环境变量:
vim /etc/profile
在结尾添加
PATH=$PATH:/usr/local/php/bin
export PATH
:wq
保存后运行
source /etc/profile
执行命令
php -v
如果出现以下画面就代表php安装成功:
配置php-fpm
- 将启动文件加入systemctl,复制到系统文件夹中
cp /root/php-7.3.6/sapi/fpm/php-fpm.service /usr/lib/systemd/system
配置
1.生成 php-fpm.conf
cd /usr/local/php/etc/
复制默认文件
cp php-fpm.conf.default php-fpm.conf
2.生成 www.conf
cd /usr/local/php/etc/php-fpm.d
复制默认文件
cp www.conf.default www.conf
编辑文件
vim www.conf
将其中
user = nginx
group = nginx
改为
user = nobody
group = nobody
如果访问时提示:file not found,把这个改回去试一下能否解决。
启动
systemctl start php-fpm.service
systemctl status php-fpm.service
到这里,PHP已经安装配置成功。
Nginx安装
- 下载安装nginx1.8
rpm -Uvh http://nginx.org/packages/centos/7/noarch/RPMS/nginx-release-centos-7-0.el7.ngx.noarch.rpm
yum -y install nginx
启动
systemctl start nginx.service
查看状态 如果出现以下画面就带代表安装成功
systemctl status nginx.service
创建文件夹
cd /home/
mkdir /www
创建phpinfo文件
cd www/
vim phpinfo.php
编辑添加
<?php
echo phpinfo();
编辑nginx配置
vim /etc/nginx/conf.d/default.conf
server {
listen 80;
server_name localhost;
root /home/www/;
#charset koi8-r;
#access_log /var/log/nginx/host.access.log main;
location / {
root /usr/share/nginx/html;
index index.html index.htm index.php;
}
#error_page 404 /404.html;
# redirect server error pages to the static page /50x.html
#
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root /usr/share/nginx/html;
}
# proxy the PHP scripts to Apache listening on 127.0.0.1:80
#
#location ~ \.php$ {
# proxy_pass http://127.0.0.1;
#}
# pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
#
location ~ \.php$ {
#root html;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME /scripts$fastcgi_script_name;
include fastcgi_params;
}
# deny access to .htaccess files, if Apache's document root
# concurs with nginx's one
#
#location ~ /\.ht {
# deny all;
#}
}
- 修改网站根目录
把root指向目录改为/home/www/ 即 root /home/www/; - 添加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;
}
重启
systemctl restart nginx.service
直接访问ip地址,出现下图,说明nginx可用
也有可能访问不了,请注意阿里云安全组配置规则添加80端口访问,建议同时增加3306端口访问安全组。未配置域名解析,访问 你的 ip/home/www/phpinfo.php 或 ip/phpinfo.php ,如果配置了域名解析,访问 域名/phpinfo.php 出现以下页面就代表nginx已经可以解析php文件了:
MySQL安装
- 下载安装mysql5.7
rpm -Uvh http://dev.mysql.com/get/mysql57-community-release-el7-7.noarch.rpm
yum -y install mysql-community-server mysql-community-devel
启动
启动
systemctl start mysqld
查看状态,显示下图就代表启动成功
systemctl status mysqld
获取初始密码
grep 'temporary password' /var/log/mysqld.log
登录mysql并修改密码
mysql -u root -p
修改密码:
ALTER USER 'root'@'localhost' IDENTIFIED BY '123456';
此时会提示错误:
ERROR 1819 (HY000): Your password does not satisfy the current policy requirements
解决方案:
降低安全级别:
set global validate_password_policy=0;
设置密码长度:
set global validate_password_length=6;
再执行修改密码操作即可成功
退出mysql:
exit
配置,修改php.ini 这个值可以从 /etc/my.cnf 找到
vim /usr/local/php/lib/php.ini
修改
mysqli.default_socket = /var/lib/mysql/mysql.sock
重启nginx和php-fpm
systemctl restart nginx.service
systemctl restart php-fpm.service
测试
添加文件到/home/www/文件夹中
vim /home/www/testMysql.php
添加内容
<?php
$mysqli = @new mysqli('localhost','root','123456');
if($mysqli->connect_errno){
die("could not connect to the database:\n" . $mysqli->connect_error);
}else{
echo 'connect success!';
}
现在你访问 域名/testMysql.php 或 ip/home/www/testMysql.php 或 ip/testMysql.php 如果显示 connect success就代表 lnmp环境搭建成功了
至此,LNMP服务器环境搭建完成。
只要思想不滑坡,办法总比困难多