我准备好咯安装包的(百度云盘 http://pan.baidu.com/s/1c04powo)
一、nginx的编译安装
新装的Ubuntu系统
apt-get install gcc
apt-get install g++
首先,编译安装nginx,nginx依赖于zlib和pcre
tar -zxvf zlib-1.2.8.tar.gz
cd zlib-1.2.8
./configure
make && make install
cd ..
tar -xf pcre-8.36.tar.bz2
cd pcre-8.36
./configure
make && make install
zlib和pcre都是直接configure后make && make install
现在编译nginx
cd ..
tar -zxvf nginx-1.9.0.tar.gz
cd nginx-1.9.0
首先添加nginx用户
useradd nginx -s /sbin/nologin -M
如果你要添加openssl openssl使用的是源码包
cd ..
tar -zxvf openssl-1.0.2a.tar.gz
配置nginx
cd ..cd nginx-1.9.0
./configure --user=nginx --group=nginx --prefix=/usr/local/nginx --with-http_stub_status_module --with-http_ssl_module --with-openssl=/home/env/lnmp/openssl-1.0.2a
/home/fangyue/work/lnmp/openssl-1.0.2a
make && make install
至此,nginx就编译好咯
cd /usr/local/nginx/
./sbin/nginx -t
ls /usr/local/lib/
cd /etc/ld.so.conf.d/
nano usr-lib.conf
/usr/local/lib
ldconfig
/usr/local/nginx/sbin/nginx -t
/usr/local/nginx/sbin/nginx
测试;浏览器访问 localhost
二、mysql的编译安装
接下来是搞mysql
我使用的mysql5.5 所以需要使用cmake方式进行编译
cd
/home/fangyue/work/lnmp/
tar -zxvf cmake-3.2.2.tar.gz
cd cmake-3.2.2
./configure
make && make install
cmake你可以直接使用yum或者apt-get安装
注意:cmake如果是编译安装的话,centos和mint的提示是不一样的,根据提示进行操作就可以
cd ..
sudo apt-get install libncurses5-dev
sudo apt-get install bison
tar -zxvf mysql-5.5.44.tar.gz
cd mysql-5.5.44
添加mysql组和mysql用户
groupadd mysql
useradd mysql -s /sbin/nologin -g mysql -M
cmake . -DCMAKE_INSTALL_PREFIX=/usr/local/mysql -DMYSQL_DATADIR=/usr/local/data -DMYSQL_UNIX_ADDR=/usr/local/mysql/tmp/mysql.sock -DENABLED_LOCAL_INFILE=ON -DWITH_INNOBASE_STORAGE_ENGINE=1 -DWITH_FEDERATED_STORAGE_ENGINE=1 -DWITH_BLACKHOLE_STORAGE_ENGINE=1 -DWITHOUT_EXAMPLE_STORAGE_ENGINE=1 -DWITH_FAST_MUTEXES=1 -DWITH_ZLIB=bundled -DENABLED_LOCAL_INFILE=1 -DWITH_READLINE=1 -DWITH_EMBEDDED_SERVER=1
make && make install
创建数据目录
mkdir -p /usr/local/mysql/data
chown -R mysql.mysql /usr/local/mysql
chmod -R 777 /tmp/
初始化数据库
cd /usr/local/mysql/
cd scripts/
./mysql_install_db --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data --user=mysql
复制配置文件
cp support-files/my-small.cnf /etc/my.cnf
复制启动文件
cp support-files/mysql.server /etc/init.d/mysqld
chmod +x /etc/init.d/mysqld
nano /etc/my.cnf #如果启动不了,可以修改一下配置文件,添加datadir = 你配置的路径
(还是启动不了在[mysqld]下面加一行federated)
如果
在make php-5.5.5时提示没有X11/xpm.h
cp /home/fangyue/work/lnmp/php-5.6.8/php.ini-development /usr/local/php-nginx/lib/php.ini
为root用户提供密码
#usr/local/mysql/bin/mysqladmin -u root password '123456'
设置环境变量
nano /etc/profile
PATH=$PATH:/usr/local/mysql/bin/
. /etc/profile
mysql -u root -p
至此mysql就编译安装好咯,至于php留着下次编译,下班回家
三、php的编译安装
其实LAMP和LNMP其实差不多,主要是apache是把php作为模块编译,而nginx是作为fast-cgi,php是进程
php依赖编译安装
(1)、libxml2-2.7.2.tar.gz
tar xf libxml2-2.7.2.tar.gz
cd libxml2-2.7.2
./configure --prefix=/usr/local/libxml2
make && make install
(2)、jpegsrc.v9a.tar.gz
mkdir -p /usr/local/jpeg9
mkdir -p /usr/local/jpeg9/bin
mkdir -p /usr/local/jpeg9/lib
mkdir -p /usr/local/jpeg9/include
mkdir -p /usr/local/jpeg9/man
mkdir -p /usr/local/jpeg9/man1
mkdir -p /usr/local/jpeg9/man/man1
tar xf jpegsrc.v9a.tar.gz
cd jpeg-9a
./configure --prefix=/usr/local/jpeg9/ --enable-shared --enable-static
make && make install
(3)、libpng-1.6.10.tar.gz
tar xf libpng-1.6.10.tar.gz
cd libpng-1.6.10
./configure --prefix=/usr/local/png
make && make install
(4)、freetype-2.5.5.tar.bz2
tar xf freetype-2.5.5.tar.bz2
cd freetype-2.5.5
mkdir -p /usr/local/freetype
./configure --prefix=/usr/local/freetype
make && make install
(5)、libiconv-1.14.tar.gz
tar xf libiconv-1.14.tar.gz
cd libiconv-1.14
cd srclib
gedit stdio.in.h
通过搜索,定位到_GL_WARN_ON_USE (gets, "gets is a security hole - use fgets instead");这一行,然后在这一行的前后加上条件编译即可,修改后的内容如下:
#if defined(__GLIBC__) && !defined(__UCLIBC__) && !__GLIBC_PREREQ(2, 16)
_GL_WARN_ON_USE (gets, "gets is a security hole - use fgets instead");
#endif
./configure --prefix=/usr/local/iconv
make && make install
(6)、curl-7.42.1.tar.gz
tar xf curl-7.42.1.tar.gz
cd curl-7.42.1
./configure --prefix=/usr/local/curl
make && make install
(7)、libgd-2.1.0.tar.gz
tar xf libgd-2.1.0.tar.gz
cd libgd-2.1.0
./configure --prefix=/usr/local/gd \
--with-jpeg=/usr/local/jpeg9/ \
--with-png=/usr/local/png \
--with-zlib \
--with-freetype=/usr/local/freetype
make && make install
(8)、libmcrypt-2.5.8.tar.bz2
tar xf libmcrypt-2.5.8.tar.bz2
cd libmcrypt-2.5.8
./configure
make && make install
(9)、mhash-0.9.9.9.tar.bz2
tar xf mhash-0.9.9.9.tar.bz2
cd mhash-0.9.9.9
./configure
make && make install
(10)、mcrypt-2.6.8.tar.gz
tar xf mcrypt-2.6.8.tar.gz
cd mcrypt-2.6.8
注意config的时候会提示找不到libmcrpyt
解决:ln -s /usr/local/bin/libmcrypt-config /usr/bin/libmcrypt-config
export LD_LIBRARY_PATH=/usr/local/lib: LD_LIBRARY_PATH
./configure
make && make install
(11)、php5.6.8编译 php-5.6.8.tar.gz
tar xf php-5.6.8.tar.gz
cd php-5.6.8
./configure --prefix=/usr/local/php-nginx \
--with-mysql=/usr/local/mysql \
--with-pdo-mysql=mysqlnd \
--with-mysqli=mysqlnd \
--with-freetype-dir=/usr/local/freetype \
--with-gd=/usr/local/gd \
--with-zlib \
--with-libxml-dir=/usr/local/libxml2 \
--with-jpeg-dir=/usr/local/jpeg9 \
--with-png-dir=/usr/local/png \
--with-curl=/usr/local/curl \
--with-mhash \
--enable-mbstring \
--enable-xml \
--enable-shmop \
--enable-sysvsem \
--enable-bcmath \
--enable-fpm \
--enable-gd-native-ttf \
--enable-sockets \
--enable-zip \
--enable-soap \
--with-fpm-user=nginx \
--with-fpm-group=nginx \
--enable-ftp \
--enable-shared
make && make install
修改/usr/local/nginx/conf/nginx.conf
cd /usr/local/nginx/conf
nano nginx.conf
fastcgi_param SCRIPT_FILENAME $document_root/$fastcgi_script_name;
复制配置文件
cd /usr/local/php-nginx/etc
cp php-fpm.conf.default php-fpm.conf
/usr/local/nginx/sbin/nginx
/usr/local/php-nginx/sbin/php-fpm
cd /usr/local/nginx/html
nano phpinfo.php
<?php
phpinfo();
?>
/usr/local/nginx/sbin/nginx -s reload
[root@localhost sbin]# ./nginx -s reload
nginx: [error] open() "/usr/local/nginx/logs/nginx.pid" failed (2: No such file or directory)
解决方法:
[root@localhost nginx]# /usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf
安装包在我的云盘里面 http://pan.baidu.com/s/1c04powo