Skip to content Skip to main navigation Skip to footer

shell: [Linux] LNMP环境的搭建

LNMP 是指一组通常一起使用来运行动态网站或者服务器的自由软件名称首字母缩写:

这篇文章介绍如何在 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

访问网站,就可以看见结果了

原文:http://blog.miskcoo.com/2015/03/linux-lnmp-environment

0 Comments

There are no comments yet

Leave a comment

Your email address will not be published.