我购买的阿里云是centos7.3的.在Linux下,搭建服务最好当然是LNMP了,毕竟PHP是世界上最好的语言(开玩笑了 0.0)。当然LAMP也很好,我就是Apache从转投Nginx的,就因为Nginx配置简单,资源占用低.当然Apache也有他的优点,孰优孰劣,还是要根据自己的需要取舍吧。
言归正传,LNMP是Linux、Nginx、MySQL(Mariadb)、PHP。在centos上,默认的数据不再是MySQL了,成了Mariadb,这是MySQL的社区版,基本上是完全兼容MySQL的,对普通开发者而言,基本感觉得不到差别的。
开始搭建环境
安装Nginx
安装Nginx,在Linux上可是使用yum安装Nginx,也可以编译源码安装,鉴于我购买的服务器性能的原因,我还是用yum安装吧.
- 使用
yum search nginx
查看是否Nginx包,阿里云的centos默认是有Nginx包的.- 使用
yum -y install nginx
使用-y会自动解决依赖问题- 等待安装完成,没有报错的话,安装成功了。使用
service nginx start
开启Nginx服务,使用systemctl enable nginx
把Nginx设为开机启动。
使用curl 127.0.0.1
看一下,返回html代码,说明成功了
安装Mariadb或者MySQL
安装Mariadb或者MySQL,在centos中,Mariadb可以直接使用yum安装。由于centos的yum中默认没有MySQL的源,必须手动添加MySQL源,才能安装。
安装Mariadb:
yum -y install mariadb mariadb-server
不出意外的话,会成功安装.service mariadb start
开启Nginx服务,使用systemctl enable mariadb
把mariadb设为开机启动。- 简单配置Mariadb 输入
mysql_secure_installation
1.显示 Enter current password for root (enter for none): 第一次运行直接回车2.Set root password? [Y/n] 是否设置root用户密码,输入y并回车或直接回车
3.New password: 设置root用户的密码
4.Re-enter new password: 再输入一次你设置的密码
5.Remove anonymous users? [Y/n] 是否删除匿名用户,回车
6.Disallow root login remotely? [Y/n] 是否禁止root远程登录,回车,
7.Remove test database and access to it? [Y/n] 是否删除test数据库,回车
8.Reload privilege tables now? [Y/n] 是否重新加载权限表,回车
mysql -uroot -ppassword
登录测试一下
centos中的Mariadb版本是5.5,对标的MySQL5.5版本,最新的稳定版Mariadb是10.3,怎么安装最新版的Mariadb等以后有时间再更新
安装MySQL:
- 添加MySQL的yum源
wget https://repo.mysql.com//mysql80-community-release-el7-1.noarch.rpm
rpm -Uvh platform-and-version-specific-package-name.rpm
添加MySQL- 现在默认会安装MySQL8.0版本,如果想要5.7大的话 1.
yum-config-manager --disable mysql80-community
2.yum-config-manager --enable mysql57-community
- 开始安装
yum install mysql-community-server
service mysqld start
开启MySQL服务,systemctl enable mysql
设为开机启动- 这时候MySQL是没有没密码的,需要找到密码
sudo grep 'temporary password' /var/log/mysqld.log
能看到密码
8.登录,mysql -uroot -p 看到的密码
- 修改密码
ALTER USER 'root'@'localhost' IDENTIFIED BY 'newpassword';
附上MySQL官网的安装教程传送门
安装php
php可以使用源码安装,也可以使用yum安装,鉴于我的服务器的性能,还是选择了yum安装。yun安装首先要添加源。
- 配置yum源
rpm -Uvh https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm
。
rpm -Uvh https://mirror.webtatic.com/yum/el7/webtatic-release.rpm
- 安装php7.2和需要的拓展
yum -y install php72w php72w-cli php72w-common php72w-devel php72w-embedded php72w-fpm php72w-gd php72w-mbstring php72w-mysqlnd php72w-opcache php72w-pdo php72w-xml
- 开启php-fpm 服务,
service php-fpm start
systemctl enable php-fpm
设为开机启动
好了LNMP需要的软件都安装好了,简单配置一下
配置
Nginx配置
cd /etc/nginx/
vim nginx.conf
- 修改配置文件
server {
listen 80 default_server;
listen [::]:80 default_server;
server_name _;
root /home/www/default;
return 500;#我禁用了ip访问
# Load configuration files for the default server block.
include /etc/nginx/default.d/*.conf;
error_page 404 /404.html;
location = /40x.html {
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
}
location ~ \.php$ {
root /home/www/default;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
}
php相关的部分是这里
location ~ \.php$ {
root /home/www/default;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
重启Nginx,service nginx restart
好了去 Nginx的的root目录里新建一个info.php文件,测试一下
<?php
phpinfo();
?>
访问一下你的服务器看一下,能看到php的信息,说明已经配置好了
到这里,LNMP开发环境已经搭建好了,可以愉快的开发了。
在实际应用中,一台服务上一般不会只有一个网站,一台服务器运行多个网站,最靠谱的办法就是建立多个虚拟主机,使用不同的域名,访问不同的网站。
这个问题,等有空再更新,
下次更新,Nginx虚拟主机的配置