基于Linux的lnmp环境部署搭建
LNMP简介
Linux系统下Nginx+MySQL+PHP这种网站服务器架构。Linux是一类Unix计算机操作系统的统称,是目前最流行的免费操作系统。代表版本有:debian、centos、ubuntu、fedora、gentoo等。Nginx是一个高性能的HTTP和反向代理服务器,也是一个IMAP/POP3/SMTP代理服务器。Mysql是一个小型关系型数据库管理系统。PHP是一种在服务器端执行的嵌入HTML文档的脚本语言。这四种软件均为免费开源软件,组合到一起,成为一个免费、高效、扩展性强的网站服务系统。
1、安装准备
在搭建lnmp环境之前,为了不受防火墙的影响,首先要关掉防火墙和selinux。
setenforce 0
iptables -F 或service iptables stop
2、安装基本软件包
# yum install vim gcc gcc-c++ make openssl openssl-devel gd gd-devel pcre-devel -y
在用户主目录创建目录softs,用于存放所有源代码
# mkdir softs
#cd softs
2.1下载编译安装mysql
安装mysql所用到的工具包
#yum install cmake perl bison ncurses-devel -y
添加mysql的用户和数据目录
#useradd -s /sbin/nologin -M mysql
2.2下载编译安装mysql
#wget http://download.softagency.net/MySQL/Downloads/MySQL-5.5/mysql-5.5.48-linux2.6-x86_64.tar.gz
# tar xvzf mysql-5.7.1-m11.tar
#cd mysql-5.7.1
#cmake . \
-DCMAKE_INSTALL_PREFIX=/usr/local/mysql/ \
-DMYSQL_DATADIR=/usr/local/mysql/data\
-DWITH_INNOBASE_STORAGE_ENGINE=1 \
-DENABLED_LOCAL_INFILE=1 \
-DMYSQL_TCP_PORT=3306 \
-DEXTRA_CHARSETS=all \
-DDEFAULT_CHARSET=utf8 \
-DDEFAULT_COLLATION=utf8_general_ci \
-DMYSQL_UNIX_ADDR=/var/lib/mysql/mysql.sock \
-DMYSQL_USER=mysql \
-DWITH_DEBUG=0 \
-DWITH_SERVER_SUFFIX=4399DB \
-DENABLED_ASSEMBLER:BOOL=ON \
-DENABLED_LOCAL_INFILE:BOOL=ON \
-DENABLED_THREAD_SAFE_CLIENT:BOOL=ON \
-DENABLED_EMBEDDED_SERVER:BOOL=OFF \
-DCOMMUNITY_BUILD:BOOL=ON;
#make -j 4
#make install
2.3修改mysql配置文件
# chown -R mysql:mysql /usr/local/mysql/data
# cd /usr/local/mysql
# cp support-files/ my-default.cnf /etc/my.cnf
2.4生成初始数据库
# /usr/local/mysql/scripts/mysql_install_db \
--basedir=/usr/local/mysql --datadir=/usr/local/mysql/data --defaults-file=/etc/my.cnf
把mysql加入环境量并使其生效
# echo "export PATH=$PATH:/usr/local/mysql/bin" >>/etc/profile
# source /etc/profile
管理开机启动项
# cp support-files/mysql.server /etc/init.d/mysqld
# service mysqld start
Starting MySQL... SUCCESS!
# chkconfig –add mysqld
# chkconfig mysqld on
设置mysql用户和密码
# ./bin/mysqladmin –u root password 123456
# netstat -nultp |grep mysql
tcp 0 00.0.0.0:3306 0.0.0.0:* LISTEN 12569/mysqld
3、下载编译安装Nginx
3.1添加nginx用户和群组
# groupadd -r nginx
# useradd -s /sbin/nologin -M nginx
3.2安装依赖工具
# yum –y install pcre-devel openssl-devel perl-ExtUtils-Embed
3.3编译安装nginx
#cd softs
# wget http://nginx.org/download/nginx-1.9.5.tar.gz
# tar xvf nginx-1.9.5.tar.gz
# cd nginx-1.9.5.tar.gz
# ./configure --prefix=/usr/local/nginx
# make
#make install
为了方便,为nginx创建init启动(选做)
# vi /etc/rc.d/init.d/nginx
内容如下:
给予执行权限
# chmod +x /etc/rc.d/init.d/nginx
# chkconfig --add nginx
# chkconfig nginx on
# service nginx start
正在启动 nginx: [确定]
Nginx的几个重要命令参数的介绍
3.4检查配置文件:/usr/local/nginx/sbin/nginx -t -c /usr/local/nginx/conf/nginx.conf
重新加载配置文件:/usr/local/nginx/sbin/nginx -s reload
Nginx的平滑重启:kill –HUP nginx主进程号
也可以这样启动nginx:/usr/local/nginx/bin/nginx –c /usr/local/nginx/etc/nginx.conf
测试nginx
4、下载编译安装php
4.1安装依赖工具包
# yum install libmcrypt-devel mhash-devel libxslt-devel \
libjpeg libjpeg-devel libpng libpng-devel freetype freetype-devel libxml2 libxml2-devel \
zlib zlib-devel glibc glibc-devel glib2 glib2-devel bzip2 bzip2-devel \
ncurses ncurses-devel curl curl-devel e2fsprogs e2fsprogs-devel \
krb5 krb5-devel libidn libidn-devel openssl openssl-devel –y
4.2建立php用户
# useradd -s /sbin/nologin -M fpmuser
# vim /etc/ld.so.conf
include ld.so.conf.d/*.conf
include /usr/local/lib
include .
# ldconfig
4.3安装几个源码包依赖: libmcrypt mhash mcrypt
4.4安装libiconv
tar zxvf libiconv-1.14.tar.gz
cd libiconv-1.14
./configure --prefix=/usr/local/libiconv
make
make install
4.5安装libmcrypt库
libiconv库为需要做转换的应用提供了一个iconv()函数,以实现一个字符编码到别一个编码的转换
# wget http://ncu.dl.sourceforge.net/project/mcrypt/Libmcrypt/2.5.8/libmcrypt-2.5.8.tar.bz2
# tar -jxvf libmcrypt-2.5.8.tar.bz2
# cd libmcrypt-2.5.8
# ./configure
# make && make install
4.5安装mhash
# wget http://120.52.73.43/nchc.dl.sourceforge.net/project/mhash/mhash/0.9.9.9/mhash-0.9.9.9.tar.bz2
# tar -jxvf mhash-0.9.9.9.tar.bz2
# cd mhash-0.9.9.9
# ./configure
# make && make install
4.6这两个包安装完成后要把动态链接库做一个软连接到/usr/lib,以为接下来的mcrypt依赖于这两个包
# ln -s /usr/local/lib/libmcrypt* /usr/lib
# ln -s /usr/local/lib/libmhash.* /usr/lib/
# ln -s /usr/local/bin/libmcrypt-config /usr/bin/libmcrypt-config
4.7安装mcrypt
# wget http://120.52.73.49/nchc.dl.sourceforge.net/project/mcrypt/MCrypt/2.6.8/mcrypt-2.6.8.tar.gz
# tar -zxvf mcrypt-2.6.8.tar.gz
# cd mcrypt-2.6.8
# ./configure
# make && make install
4.8编译安装php
# wget http://php.net/get/php-5.4.12.tar.bz2/from/cn2.php.net/mirror
# tar zxvf php-5.4.12.tar.gz
# cp /tmp/mysql-5.7.1-m11/include/pfs_thread_provider.h .
# cd php-5.4.12
# ./configure --prefix=/usr/local/php --with-config-file-path=/etc --with-mysql=/usr/local/mysql --with-mysqli=/usr/local/mysql/bin/mysql_config -with-pdo-mysql=/usr/local/mysql/bin/mysql_config --with-jpeg-dir --with-png-dir --with-zlib --with-libxml-dir=/usr --enable-xml --enable-mbstring --with-gd --with-freetype-dir --enable-zip --with-mhash --enable-pcntl --enable-sockets --with-openssl --with-mcrypt --enable-cgi --enable-fpm
#make
#make install
4.9启动配置
# cp php.ini-production /usr/local/php/lib/php.ini
# cd /usr/local/php/etc/
# cp -a php-fpm.conf.default php-fpm.conf
# cd ..
# sbin/php-fpm
4.10查看php是否启动了
# netstat -nultp |grep fpm
tcp 0 0 127.0.0.1:9000 0.0.0.0:* LISTEN 6821/php-fpm
4.11配置nginx支持php
# vim /usr/local/nginx/conf/nginx.conf
启动如下选项
location ~ \.php$ { root html; fastcgi_pass 127.0.0.1:9000; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; include fastcgi_params; } 并在location / { root html; index index.php index.html index.htm; ,添加了index.php |
4.12重新reload php的配置
# /usr/local/nginx/sbin/nginx -s reload
测试
# cd /usr/local/nginx/html
# vim test.php
<?php phpinfo();?>
4.13为了方便启动php,把php加入到开机启动项
# cp sapi/fpm/init.d.php-fpm /etc/rc.d/init.d/php-fpm
# chmod +x /etc/init.d/php-fpm
# chkconfig --add php-fpm
# chkconfig php-fpm on
注意:PHP安装好后的一些目录
Installing shared extensions: /usr/local/php/lib/php/extensions/no-debug-non-zts-20121212/
Installing PHP CLI binary: /usr/local/php/bin/
Installing PHP CLI man page: /usr/local/php/php/man/man1/
Installing PHP FPM binary: /usr/local/php/sbin/
Installing PHP FPM config: /usr/local/php/etc/
Installing PHP FPM man page: /usr/local/php/php/man/man8/
Installing PHP FPM status page: /usr/local/php/php/fpm/
Installing PHP CGI binary: /usr/local/php/bin/
Installing PHP CGI man page: /usr/local/php/php/man/man1/
Installing build environment: /usr/local/php/lib/php/build/
Installing header files: /usr/local/php/include/php/
Installing helper programs: /usr/local/php/bin/
program: phpize
program: php-config
Installing man pages: /usr/local/php/php/man/man1/
page: phpize.1
page: php-config.1
Installing PEAR environment: /usr/local/php/lib/php/
[PEAR] Archive_Tar - already installed: 1.3.11
[PEAR] Console_Getopt - already installed: 1.3.1
[PEAR] PEAR - already installed: 1.9.4
Wrote PEAR system config file at: /usr/local/php/etc/pear.conf
You may want to add: /usr/local/php/lib/php to your php.ini include_path
[PEAR] Structures_Graph- already installed: 1.0.4
[PEAR] XML_Util - already installed: 1.2.1
/root/softs/PHP/php-5.5.12/build/shtool install -c ext/phar/phar.phar /usr/local/php/bin
ln -s -f /usr/local/php/bin/phar.phar /usr/local/php/bin/phar
Installing PDO headers: /usr/local/php/include/php/ext/pdo/
此时可以监听到MySQL、nginx、PHP的端口
5、解压worddpress,安装个人博客:
启动mysql服务
[root@localhost Packages]# service mysqld start
正在启动 mysqld: [确定]
[root@localhost Packages]#
设置mysql管理员密码:
[root@localhost Packages]# mysqladmin -u root password mysql
启动mysql服务
[root@localhost Packages]# mysql -u root -p
Enter password:
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 6
Server version: 5.1.52 Source distribution
Copyright (c) 2000, 2010, Oracle and/or its affiliates. All rights reserved.
This software comes with ABSOLUTELY NO WARRANTY. This is free software,
and you are welcome to modify and redistribute it under the GPL v2 license
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
mysql>
创建wordpress数据库
mysql> create database wordpress;
创建一个专用的wordpress blog管理用户
mysql> grant all on wordpress.* to wordpress@'localhost' identified by '123456';
Query OK, 0 rows affected (0.00 sec)
若数据库与php服务不在一台机器上,可以将localhost改为ip地址。
刷新权限,是新用户生效:
mysql> flush privileges ;
Query OK, 0 rows affected (0.00 sec)
查看用户对应权限
mysql> show grants for wordpress@'localhost';
+------------------------------------------------------------------------------------------------------------------+
| Grants for wordpress@localhost |
+------------------------------------------------------------------------------------------------------------------+
| GRANT USAGE ON *.* TO 'wordpress'@'localhost' IDENTIFIED BY PASSWORD '*6BB4837EB74329105EE4568DDA7DC67ED2CA2AD9' |
| GRANT ALL PRIVILEGES ON `wordpress`.* TO 'wordpress'@'localhost' |
+------------------------------------------------------------------------------------------------------------------+
2 rows in set (0.00 sec)
解压缩wordpress至/var/www/html
cp wp-config-sample.php wp-config.php
安装wordpress,既输入http://服务器ip/index.php
配置wordpress
启动wordpress


浙公网安备 33010602011771号