搭建lnmp教程

时间:2023-03-09 14:49:44
搭建lnmp教程

LNMP指的是一个基于CentOS/Debian 上安装Nginx、PHP、MySQL、php。可以在独立主机上轻松的安装LNMP生产环境。

1 安装nginx

如果是一台新的服务器可直接安装(若以前安装过apacha和php需要卸载 命令 #yum remove http* php* )

安装命令

yum -y install nginx

启动命令

/etc/init.d/nginx start

刚刚买了服务器,测试发现无法启动报错 ,解决办法将default.conf 后缀改掉,这是一个虚拟主机的配置,,后面我们会详细介绍。

cd /etc/nginx/conf.d
mv default.conf default.conf.back

设置系统启动自动开启

chkconfig --level  nginx on

安装nginx之后,我们要搭建一个虚拟主机,方便外网访问。一台云服务器可以创建多个虚拟主机。运行多个网站。我们可以为不同的域名绑定不同的目录,访问这个域名的时候,会打开对应目录里面的东西。先进入到 nginx 配置文件目录:

cd /etc/nginx/conf.d

新建一个以.conf结尾的配置文件名字最好以你的配置的域名为名称例如 www.baidu.com.conf,下面是一个虚拟主机配置,一般情况下只需要改动域名和代码位置,域名需要在域名管理平台解析,

代码本人习惯放在根目录/home/ 下

server {
listen ;
server_name www.baidu.com;
root /home/baidu;
charset utf-;
#access_log /var/log/nginx/log/host.access.log main; location / {
index index.html index.htm index.php;
try_files $uri $uri/ /index.php?$query_string;
}
#error_page /.html; # redirect server error pages to the static page /50x.html
#
error_page /50x.html;
location = /50x.html {
root /usr/share/nginx/html;
} # proxy the PHP scripts to Apache listening on 127.0.0.1:
#
#location ~ \.php$ {
# proxy_pass http://127.0.0.1;
#} # pass the PHP scripts to FastCGI server listening on 127.0.0.1:
#
location ~ \.php$ {
# root html;
fastcgi_pass 127.0.0.1:;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params; client_max_body_size 5000m;
} # deny access to .htaccess files, if Apache's document root
# concurs with nginx's one
#
#location ~ /\.ht {
# deny all;
#}
}

重启 nginx 或者重新加载 nginx 可以让配置文件生效。

service nginx reload
或者
service nginx restart

到根目录/home下,创建代码目录,目录名称必须跟虚拟主机配置项目录名称一致。

cd /home
mkdir baidu
vim baidu/1.html

随便写点什么保存。本人懒推荐****************;现在,打开浏览器,输入你为虚拟主机设置的域名,看看是否能打开你指定的目录里的东西。

2 安装php

根据项目需求安装php版本。php7.0性能高。

1.检查当前安装的PHP包

yum list installed | grep php

如果有安装的PHP包,先删除他们

yum remove php.x86_64 php-cli.x86_64 php-common.x86_64 php-gd.x86_64 php-ldap.x86_64 php-mbstring.x86_64 php-mcrypt.x86_64 php-mysql.x86_64 php-pdo.x86_64

2.配置yum源,根据服务器系统版本选择

Centos 5.X

rpm -Uvh http://mirror.webtatic.com/yum/el5/latest.rpm

​CentOs 6.x

rpm -Uvh http://mirror.webtatic.com/yum/el6/latest.rpm

​CentOs 7.X

rpm -Uvh https://mirror.webtatic.com/yum/el7/epel-release.rpm
​rpm -Uvh https://mirror.webtatic.com/yum/el7/webtatic-release.rpm

3.运行安装php yum install

安装php5.5

yum install php55w.x86_64 php55w-cli.x86_64 php55w-common.x86_64 php55w-gd.x86_64 php55w-ldap.x86_64 php55w-mbstring.x86_64 php55w-mcrypt.x86_64 php55w-mysql.x86_64 php55w-pdo.x86_64​

安装php5.6

yum install php56w.x86_64 php56w-cli.x86_64 php56w-common.x86_64 php56w-gd.x86_64 php56w-ldap.x86_64 php56w-mbstring.x86_64 php56w-mcrypt.x86_64 php56w-mysql.x86_64 php56w-pdo.x86_64

安装php7.0

yum install php70w.x86_64 php70w-cli.x86_64 php70w-common.x86_64 php70w-gd.x86_64 php70w-ldap.x86_64 php70w-mbstring.x86_64 php70w-mcrypt.x86_64 php70w-mysql.x86_64 php70w-pdo.x86_64

4.安装PHP FPM​

yum install php55w-fpm
yum install php56w-fpm
yum install php70w-fpm

如果你想在系统启动时自动运行php-fpm,输入下列命令:

# chkconfig --level  php-fpm on

第一次启动php-fpm,输入下列命令:

# /etc/init.d/php-fpm restart

现在,我们已经安装了 php-fpm,并修改了 nginx 的配置文件让它可以去执行 php,下面,我们得去测试一下,可以使用 php 的 phpinfo(); 函数,方法是在你的虚拟主机根目录下面,创建一个 php 文件,命名为 phpinfo.php,然后在这个文件里输入:

<?php phpinfo(); ?>

保存并退出,php默认的使用者是apache,需要改为nginx

vim /etc/php-fpm.d/www.conf

将39行 41行的 apache改为nginx

 ; RPM: apache Choosed to be able to access some dir as httpd
user = apache
; RPM: Keep a group allowed to write in log dir.
group = apache
改为
; RPM: apache Choosed to be able to access some dir as httpd
user = nginx
; RPM: Keep a group allowed to write in log dir.
group = nginx

重启nginx

service nginx restart

浏览器打开刚刚的文件,显示php信息

3 安装mysql

安装 mysql
mysql 可以管理网站用到的数据库,WordPress 和 Drupal 也都支持 mysql 数据库。所以我们的 Web 运行环境里,需要安装一个 mysql 。直接使用 yum 命令去安装 mysql :

yum install mysql-server

安装完成后,使用 service 命令启动 mysql 服务:

service mysqld start

然后我们需要简单配置一下 mysql ,默认安装以后 mysql 的 root 用户是没有密码的,对于生产环境来说,这肯定是不行的,另外还有一些安全相关的设置,可以使用下面这行命令去配置一下,它是一个向导,问你一些问题,你要给出答案,比如是否要设置 root 用户的密码, 密码是什么等等。

mysql_secure_installation
Enter current password for root (enter for none):
解释:输入当前 root 用户密码,默认为空,直接回车。
Set root password? [Y/n] y
解释:要设置 root 密码吗?输入 y 表示愿意。
Remove anonymous users? [Y/n] y
解释:要移除掉匿名用户吗?输入 y 表示愿意。
Disallow root login remotely? [Y/n] y
解释:不想让 root 远程登陆吗?输入 y 表示愿意。
Remove test database and access to it? [Y/n] y
解释:要去掉 test 数据库吗?输入 y 表示愿意。
Reload privilege tables now? [Y/n] y
解释:想要重新加载权限吗?输入 y 表示愿意。

CentOS下开启mysql远程连接, 当服务器没有运行php、没装phpmyadmin的时候,远程管理mysql就显得有必要了。

远程管理数据库方式有两种

1 普通链接通过3306端口链接
mysql -u root -p
在mysql控制台执行:

grant all privileges on *.* to 'root'@'%' identified by '' with grant option;

# root是用户名,%代表任意主机,'root'指定的登录密码(这个和本地的root密码可以设置不同的,互不影响)

flush privileges;# 重载系统权限
exit;

*****允许3306端口****

iptables -I INPUT -p tcp -m state --state NEW -m tcp --dport  -j ACCEPT

# 查看规则是否生效

iptables -L -n # 或者: service iptables status

# 此时生产环境是不安全的,远程管理之后应该关闭端口,删除之前添加的规则
iptables -D INPUT -p tcp -m state --state NEW -m tcp --dport 3306 -j ACCEPT
PS,上面iptables添加/删除规则都是临时的,如果需要重启后也生效,需要保存修改:

service iptables save # 或者: /etc/init.d/iptables save

另外,
vi /etc/sysconfig/iptables # 加上下面这行规则也是可以的
-A INPUT -p tcp -m state --state NEW -m tcp --dport 3306 -j ACCEPT

2 通过ssh等通道连接

我使用的是navicae工具

搭建lnmp教程

搭建lnmp教程

在这里填上服务器远程链接信息

搭建lnmp教程

在这里填上服务器上的数据库密码就可以了。

服务器远程连接工具推荐xshell,sftp,写代码推荐phpstorm;大神们喜欢用vi直接在服务器上写代码,但是我还是喜欢这些工具, 工具是人类进步的阶梯嘛!