shell: [Linux] LNMP环境的搭建
June 5, 2015
LNMP 是指一组通常一起使用来运行动态网站或者服务器的自由软件名称首字母缩写:
-
Linux
:一种自由和开放源码的类UNIX操作系统 -
Nginx
:一个轻量级网页服务器、反向代理服务器 -
M
ariaDB
或
M
ySQL
:数据库服务器 -
P
HP
、
P
erl
或
P
ython
:脚本语言
这篇文章介绍如何在 CentOS 7 (x64) 上搭建 LNMP 环境,当然有些部分可能在其它系统上处理起来有些不同,但是大体上各个 Linux 系统的搭建过程都是类似的
首先是安装一些必要的包,以保证 nginx 的编译及运行顺利
Shell
yum install gcc-c++ pcre pcre-devel zlib zlib-devel openssl openssl-devel
然后到官网下载最新版的 nginx,并且解压进入目录,之后是编译安装,这里我们将其安装到 /usr/local/nginx 目录下
Shell
wget http://nginx.org/download/nginx-1.7.10.tar.gz # 下载最新版的 nginx tar zxvf nginx-1.7.10.tar.gz # 解压 cd nginx-1.7.10 ./configure --prefix=/usr/local/nginx make && make install
中间如果没有报错的话,那么现在应该已经顺利安装好了,之后进入到刚刚的目录
Shell
cd /usr/local/nginx
尝试运行以下看看有没有问题
Shell
sbin/nginx
如果你看到下面这段文字,就说明有什么东西占用了你的 80 端口,这很有可能是 Apache 的 httpd 程序,它也是一个网页服务器,你可以将它关闭
Shell
nginx: [emerg] bind() to 0.0.0.0:80 failed (98: Address already in use)
Shell
systemctl stop httpd systemctl disable httpd
现在看看 80 端口是否被 nginx 占用了
Shell
# netstat -antlp | grep 80 tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN 6093/nginx: master
如果是的话,就输入你的地址看看是否能够访问,正常情况下应该是会显示一个欢迎界面之类的东西,但是如果你始终连接不上的话,检查以下防火墙配置,把 80 端口打开
Shell
/sbin/iptables -I INPUT -p tcp --dport 80 -j ACCEPT /sbin/iptables-save > /etc/sysconfig/iptables systemctl restart iptables
然后如果要设置开机自动启动,由于我用的是 systemctl,你可以在 /usr/lib/systemd/system 下创建一个叫做 nginx.service 的文件,内容如下。具体目录可以根据实际情况修改
Shell
[Unit] Description=nginx - high performance web server Documentation=http://nginx.org/en/docs/ After=network.target remote-fs.target nss-lookup.target [Service] Type=forking PIDFile=/run/nginx.pid ExecStartPre=/usr/local/nginx/sbin/nginx -t -c /usr/local/nginx/conf/nginx.conf ExecStart=/usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf -g 'pid /run/nginx.pid; error_log stderr;' ExecReload=/bin/kill -s HUP $MAINPID ExecStop=/bin/kill -s QUIT $MAINPID PrivateTmp=true [Install] WantedBy=multi-user.target
然后运行
Shell
systemctl enable nginx
接下来安装 MySQL 服务,首先到官网 http://dev.mysql.com/downloads/repo/yum/找找相应的数据仓库,然后下载安装
Shell
wget http://dev.mysql.com/get/mysql-community-release-el7-5.noarch.rpm rpm -ivh mysql-community-release-el7-5.noarch.rpm
然后安装
Shell
yum install mariadb mariadb-server
接着用 mysql 用户来初始化数据库
Shell
mysql_install_db --user=mysql
然后是启动 mysql 服务
Shell
systemctl start mysqld systemctl enable mysqld
运行 mysql 命令连接到 mysql 服务
Shell
mysql
如果你看到这些文字,就说明连接成功了
C++
Welcome to the MySQL monitor. Commands end with ; or g. Your MySQL connection id is 2 Server version: 5.6.23 MySQL Community Server (GPL) Copyright (c) 2000, 2015, Oracle and/or its affiliates. All rights reserved. Oracle is a registered trademark of Oracle Corporation and/or its affiliates. Other names may be trademarks of their respective owners. Type 'help;' or 'h' for help. Type 'c' to clear the current input statement. mysql>
现在来设置 mysql 的 root 密码
Shell
mysqladmin -u root password # 这里的 password 不要改动,它会让你输入你的密码
这样,mysql 服务就算配置完成了,接下来安装 PHP
Shell
yum install php php-fpm php-gd php-mysql php-ldap php-pdo php-snmp php-soap php-mbstrin
之后运行 php-fpm
Shell
systemctl start php-fpm systemctl enable php-fpm
然后修改 nginx.conf 的配置
C++
server { listen 80; server_name locahost; #access_log logs/host.access.log main; location / { root /usr/local/nginx/html; # 使得 index.php 成为索引 index index.php index.html index.htm; } # 添加这些内容 location ~ .php$ { root html; fastcgi_pass 127.0.0.1:9000; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME /usr/local/nginx/html$fastcgi_script_name; include fastcgi_params; }
之后在 /usr/local/nginx/html/index.php 写上
PHP
访问网站,就可以看见结果了
0 Comments