基于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

posted @ 2019-12-07 21:12  Akdadada  阅读(433)  评论(0)    收藏  举报