LNMP其实就是Linux+Nginx+Mysql+Php。Linux安装我在上一篇已经详细介绍了。现在主要说nginx+mysql+php的安装
一、nginx安装
nginx安装前,需要安装几个依赖库
openssl库、zlib库和pcre库
①、openssl库安装
cd ~/download && wget http://www.openssl.org/source/openssl-fips-2.0.9.tar.gz
tar zxvf openssl-fips-2.0.9.tar.gz
cd openssl-fips-2.0.9
./config && make && make install
②、zlib库安装
cd ../ && wget http://zlib.net/zlib-1.2.8.tar.gz
tar -zxvf zlib-1.2.8.tar.gz
cd zlib-1.2.8
./configure && make && make install
③、pcre库安装
打开文件夹,在上面的输入框那里输入 ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/,然后复制pcre-8.36.tar.bz2到本地,然后在Linux虚拟机那里输入 : rz(注意:这里要用secureCTR),然后将文件传到Linux虚拟机的 ~/download目录下
cd ~/download
tar -jxvf pcre-8.36.tar.bz2
cd pcre-8.36
./configure && make && make install
④、nginx安装
cd ../ && wget http://nginx.org/download/nginx-1.6.3.tar.gz
tar zxvf nginx-1.6.3.tar.gz
cd nginx-1.6.3
./configure --with-pcre=../pcre-8.36 --with-zlib=../zlib-1.2.8 --with-openssl=../openssl-fips-2.0.9
make && make install
至此,nginx安装完毕。 验证是否安装成功:
/usr/local/nginx/sbin/nginx -t 如果出现如下结果,则说明已经成功:
二、MySQL安装
①、安装cmake
cd ~/download
wget http://www.cmake.org/files/v2.8/cmake-2.8.10.2.tar.gz
tar zxvf cmake-2.8.10.2.tar.gz
cd cmake-2.8.10.2
./bootstrap && make && make install
②、建立mysql用户和mysql组
groupadd mysql
useradd -g mysql mysql
③、增加需要的目录
mkdir /usr/local/mysql
mkdir -p /data/mysql
④、安装ncurses-devel
mount /dev/cdrom1(你的可能是cdrom) /mnt/cdrom
cd /mnt/cdrom/Package
rpm -ivh ncurses-devel-5.7-3.20090208.el6.x86_64.rpm
⑤、安装mysql
cd ~/download
wget http://dev.mysql.com/get/Downloads/MySQL-5.6/mysql-5.6.14.tar.gz
tar -zxvf mysql-5.6.14.tar.gz
cd mysql-5.6.14
cmake -DCMAKE_INSTALL_PREFIX=/usr/local/mysql \
-DMYSQL_UNIX_ADDR=/usr/local/mysql/mysql.sock \
-DDEFAULT_CHARSET=utf8 \
-DDEFAULT_COLLATION=utf8_general_ci \
-DWITH_INNOBASE_STORAGE_ENGINE=1 \
-DWITH_ARCHIVE_STORAGE_ENGINE=1 \
-DWITH_BLACKHOLE_STORAGE_ENGINE=1 \
-DMYSQL_DATADIR=/data/mysql -DMYSQL_TCP_PORT=3306 \
-DENABLE_DOWNLOADS=1
make && make install
(修改一下目录权限)
chown -R mysql:mysql /usr/local/mysql
chmod -R 777 /data
chown -R mysql:mysql /data/mysql
(初始化mysql数据库)
cd /usr/local/mysql
./scripts/mysql_install_db --user=mysql --datadir=/data/mysql
(复制mysql启动配置脚本,覆盖原来的)
cp /usr/local/mysql/support-files/my-default.cnf /etc/my.cnf
(复制mysql服务启动脚本)
cp support-files/mysql.server /etc/init.d/mysqld
(把mysql放到/root/bin目录下)
ln -s /usr/local/mysql/bin/mysql /root/bin/mysql
(启动mysql)
service mysqld start
(设置mysql开机启动)
chkconfig --level 35 mysqld on
(如果要修改mysql的data目录:修改/etc/my.cnf的datadir参数即可)
至此,mysql安装成功。可以在命令行执行:mysql 测试是否成功。
三、php安装
安装php前,需先安装几个依赖库
libiconv(用于编码转换)
libmcrypt(用于加密解密算法)
mhash(用于加密)
mcrypt(用于加密)
把这几个下载了,然后用rz传到Linux的~/download目录下
①、libiconv安装
cd ~/download/
tar zxvf libiconv-1.13.1.tar.gz
cd libiconv-1.13.1
./configure && make && make install
②、libmcrypt安装
cd ~/download
tar zxvf libmcrypt-2.5.8.tar.gz
cd libmcrypt-2.5.8
./configure && make && make install
/sbin/ldconfig
cd libltdl/
./configure --enable-ltdl-install
make && make install
③、mhash安装
cd ~/download
tar zxvf mhash-0.9.9.9.tar.gz
cd mhash-0.9.9.9
./configure && make && make install
ln -s /usr/local/lib/libmcrypt.la /usr/lib64/libmcrypt.la
ln -s /usr/local/lib/libmcrypt.so /usr/lib64/libmcrypt.so
ln -s /usr/local/lib/libmcrypt.so.4 /usr/lib64/libmcrypt.so.4
ln -s /usr/local/lib/libmcrypt.so.4.4.8 /usr/lib64/libmcrypt.so.4.4.8
ln -s /usr/local/lib/libmhash.a /usr/lib64/libmhash.a
ln -s /usr/local/lib/libmhash.la /usr/lib64/libmhash.la
ln -s /usr/local/lib/libmhash.so /usr/lib64/libmhash.so
ln -s /usr/local/lib/libmhash.so.2 /usr/lib64/libmhash.so.2
ln -s /usr/local/lib/libmhash.so.2.0.1 /usr/lib64/libmhash.so.2.0.1
ln -s /usr/local/bin/libmcrypt-config /usr/bin/libmcrypt-config
④、mcrypt安装
cd ~/download
tar zxvf mcrypt-2.6.8.tar.gz
cd mcrypt-2.6.8
./configure && make && make install
⑤、libxml2库安装
mount /dev/cdrom1 /mnt/cdrom/(你的可能是/dev/cdrom)
cd /mnt/cdrom/Packages/
rpm -ivh libxml2-2.7.6-8.el6_3.4.x86_64.rpm
rpm -ivh zlib-devel-1.2.3-29.el6.x86_64.rpm
rpm -ivh libxml2-devel-2.7.6-8.el6_3.4.x86_64.rpm
⑤、php安装
cd ~/download
wget http://museum.php.net/php5/php-5.3.10.tar.gz
tar -zxvf php-5.3.10.tar.gz
cd php-5.3.10
./configure --prefix=/usr/local/php --with-iconv-dir --enable-mbstring --with-zlib --with-libxml-dir --with-zlib --with-mysql=/usr/local/mysql --enable-fpm --with-fpm-user=www --with-fpm-group=www --with-mhash --with-mcrypt
make ZEND_EXTRA_LIBS='-liconv'
make install
cp php.ini-recommended /usr/local/php/lib/php.ini
把php命令放到~/bin中,这样就可以直接在命令行执行php命令了。
cd ~/bin && ln -s /usr/local/php/bin/php php
在命令行执行:php -version 如果出现如下信息,这说明正确
⑥、配置php和nginx
创建www用户组和用户
groupadd www
useradd -g www www
配置php-fpm.conf
cd /usr/local/php
cp etc/php-fpm.conf.default etc/php-fpm.conf
配置nginx
cd /usr/local/nginx/conf
rm nginx.conf
vi nginx.conf
输入如下内容:
user www www;
worker_processes 5;
error_log logs/nginx_error.log error;
#pid logs/nginx.pid;
#Specifies the value for maximum file descriptors that can be opened by this process.
worker_rlimit_nofile 51200;
events
{
use epoll;
worker_connections 51200;
}
http
{
include mime.types;
default_type application/octet-stream;
server_names_hash_bucket_size 128;
server_tokens off;
expires 1h;
sendfile on;
tcp_nopush on;
keepalive_timeout 60;
tcp_nodelay on;
error_page 404 /;
fastcgi_connect_timeout 300;
fastcgi_send_timeout 300;
fastcgi_read_timeout 300;
fastcgi_buffer_size 64k;
fastcgi_buffers 4 64k;
fastcgi_busy_buffers_size 128k;
fastcgi_temp_file_write_size 128k;
fastcgi_temp_path /dev/shm;
gzip on;
gzip_min_length 2048;
gzip_buffers 4 16k;
gzip_http_version 1.1;
gzip_types text/plain text/css text/xml application/xml application/x-javascript ;
log_format access '$request_time $remote_addr - $remote_user [$time_local] "$request" '
'$status $body_bytes_sent "$http_referer" '
'"$http_user_agent" $http_x_forwarded_for';
include vhost/*.conf ;
}
然后:
mkdir vhost && cd vhost
vi t.4399data.com.conf
输入如下内容:
server
{
listen 80 ;
server_name t.4399data.com;
index index.html index.htm index.php ;
root /data/nginx/html/4399data;
location / {
index index.php index.html index.htm;
}
location ~ .*\.php$ {
include fcgi.conf;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
expires off;
}
location ~ (favicon.ico){
log_not_found off;
expires 30d;
access_log off;
}
location ~* ^.+/.(jpg|jpeg|gif|png|swf|rar|zip|css|js)$ {
access_log off;
log_not_found off;
expires 30d;
}
access_log logs/t.4399data.com.log ;
}
然后建立/data/nginx/html/4399data目录
mkdir -p /data/nginx/html/4399data
chown -R www:www /data/nginx
开放80端口
vi /etc/sysconfig/iptables (加入一行)
-A INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT
service iptables restart
至此,nginx+mysql+php就安装完毕了。
现在可以自己测试一下:
开启nginx
/usr/local/nginx/sbin/nginx
开启php-fpm
/usr/local/php/sbin/php-fpm
在本地window里面配置host
192.168.30.10 t.4399data.com(我这里的虚拟机ip是192.168.30.10)
然后在/data/nginx/html/4399data目录下建一个文件index.php
<?php
echo "welcome to php world!";
?>
然后在浏览器那里输入t.4399data.com,可以看到: