1源码编译安装LNMP架构环境;
2、编写一个脚本完成以下功能:
(1)、一键搭建LNMP源码编译环境;
(2)、可通过在脚本后面跟上一些参数来自定义安装目录等其他选项。"
1、源码编译安装LNMP架构环境;
安装编译工具和库文件
1
yum -y install gcc gcc-c++ autoconf 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 openldap openldap-devel nss_ldap openldap-clients openldap-servers make cmake libtool* git tree
编译安装nginx
[root@localhost opt]# wget http://nginx.org/download/nginx-1.8.1.tar.gz #下载nginx安装包
[root@localhost opt]# tar xzvf nginx-1.8.1.tar.gz #解压安装包
[root@localhost nginx-1.8.1]# ./configure \
> --prefix=/usr/local/nginx \
> --with-http_realip_module \
> --with-http_sub_module \
> --with-http_ssl_module \
> --with-http_gzip_static_module \
> --with-pcre
[root@localhost nginx-1.8.1]# make && make install
[root@localhost nginx-1.8.1]# vim /usr/local/nginx/conf/nginx.conf #修改php相关配置
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;
}
[root@localhost nginx-1.8.1]# /usr/local/nginx/sbin/nginx #启动nginx
编译安装mysql
[root@localhost opt]# groupadd mysql #添加mysql组
[root@localhost opt]# useradd -r -g mysql mysql #添加mysql用户
[root@localhost opt]# tar xzvf mysql-5.6.24.tar.gz
[root@localhost opt]# yum -y install make gcc-c++ cmake bison-devel ncurses-devel libaio #安装编译代码所需要的包
[root@localhost opt]# cd /opt/mysql-5.6.24
[root@localhost mysql-5.6.24]# cmake -DCMAKE_INSTALL_PREFIX=/usr/local/mysql \ [MySQL安装的根目录]
-DMYSQL_DATADIR=/mydata/mysql/data \ [MySQL数据库文件存放目录]
-DSYSCONFDIR=/etc \ [MySQL配置文件所在目录]
-DMYSQL_USER=mysql \ [MySQL用户名]
-DWITH_MYISAM_STORAGE_ENGINE=1 \ [MySQL的数据库引擎]
-DWITH_INNOBASE_STORAGE_ENGINE=1 \ [MySQL的数据库引擎]
-DWITH_ARCHIVE_STORAGE_ENGINE=1 \ [MySQL的数据库引擎]
-DWITH_MEMORY_STORAGE_ENGINE=1 \ [MySQL的数据库引擎]
-DWITH_READLINE=1 \ [MySQL的readline library]
-DMYSQL_UNIX_ADDR=/var/run/mysql/mysql.sock \ [MySQL的通讯目录]
-DMYSQL_TCP_PORT=3306 \ [MySQL的监听端口]
-DENABLED_LOCAL_INFILE=1 \ [启用加载本地数据]
-DENABLE_DOWNLOADS=1 \ [编译时允许自主下载相关文件]
-DWITH_PARTITION_STORAGE_ENGINE=1 -DEXTRA_CHARSETS=all \ [使MySQL支持所有的扩展字符]
-DDEFAULT_CHARSET=utf8 \ [设置默认字符集为utf8]
-DDEFAULT_COLLATION=utf8_general_ci \ [设置默认字符校对]
-DWITH_DEBUG=0 \ [禁用调试模式]
-DMYSQL_MAINTAINER_MODE=0 -DWITH_SSL:STRING=bundled \ [通讯时支持ssl协议]
-DWITH_ZLIB:STRING=bundled [允许使用zlib library]
[root@localhost mysql-5.6.24]# make && make install
[root@localhost local]# chown -R mysql:mysql /usr/local/mysql/ #修改mysql文件夹属组和属主
[root@localhost local]# chown -R mysql:mysql /mydata/mysql/data
[root@localhost etc]# vim /etc/my.cnf #修改my.conf配置文件
# For advice on how to change settings please see
# http://dev.mysql.com/doc/refman/5.6/en/server-configuration-defaults.html
[mysqld]
# Remove leading # and set to the amount of RAM for the most important data
# cache in MySQL. Start at 70% of total RAM for dedicated server, else 10%.
# innodb_buffer_pool_size = 128M
# Remove leading # to turn on a very important data integrity option: logging
# changes to the binary log between backups.
# log_bin
# These are commonly set, remove the # and set as required.
basedir=/usr/local/mysql
datadir=/mydata/mysql/data
socket=/var/lib/mysql/mysql.sock
character-set-server=utf8
user= mysql
# Remove leading
# to set options mainly useful for reporting servers.
# The server defaults are faster for transactions and fast SELECTs.
# Adjust sizes as needed, experiment to find the optimal values.
# join_buffer_size = 128M
# sort_buffer_size = 2M
# read_rnd_buffer_size = 2M
[mysqld_safe]
log-error=/var/log/mariadb/mariadb.log
pid-file=/var/run/mariadb/mariadb.pid
sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES
[root@localhost local]# /usr/local/mysql/scripts/mysql_install_db --user=mysql --basedir=/usr/local/mysql --datadir=/mydata/mysql/data #初始化mysql数据库
编译安装php
[root@localhost opt]# tar xzvf php-5.6.5.tar.gz
[root@localhost php-5.6.5]# ./configure --enable-opcache --prefix=/usr/local/php --with-config-file-path=/usr/local/php/etc --with-mysql=/usr/local/mysql --with-mysqli=/usr/local/mysql/bin/mysql_config --enable-mbstring=all --with-pdo-mysql --enable-sockets --enable-mbstring --enable-fpm --with-curl --with-iconv-dir=/usr/local --with-freetype-dir --with-jpeg-dir --with-png-dir --with-zlib --enable-xml --with-gd --with-libxml-dir=/usr --enable-xml --with-openssl --with-iconv
[root@localhost php-5.6.5]# make && make install
[root@localhost etc]# cp /opt/php-5.6.5/php.ini-development /usr/local/php/etc/php.ini
[root@localhost etc]# cd /usr/local/php/etc/
[root@localhost etc]# cp php-fpm.conf.default php-fpm.conf
[root@localhost etc]# /usr/local/php/sbin/php-fpm #启动php
[root@localhost html]# vim /usr/local/nginx/html/index.php #创建一个php页面
<?php
phpinfo();
?>
2、编写一个脚本完成以下功能:
(1)、一键搭建LNMP源码编译环境;
• 安装编译工具和库文件
1 yum -y install gcc gcc-c++ autoconf 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 openldap openldap-devel nss_ldap openldap-clients openldap-servers make cmake libtool* git tree
编译安装nginx
[root@localhost opt]# wget http://nginx.org/download/nginx-1.8.1.tar.gz #下载nginx安装包
[root@localhost opt]# tar xzvf nginx-1.8.1.tar.gz #解压安装包
[root@localhost nginx-1.8.1]# ./configure \
> --prefix=/usr/local/nginx \
> --with-http_realip_module \
> --with-http_sub_module \
> --with-http_ssl_module \
> --with-http_gzip_static_module \
> --with-pcre
[root@localhost nginx-1.8.1]# make && make install
[root@localhost nginx-1.8.1]# vim /usr/local/nginx/conf/nginx.conf #修改php相关配置
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;
}
[root@localhost nginx-1.8.1]# /usr/local/nginx/sbin/nginx #启动nginx
编译安装mysql
[root@localhost opt]# groupadd mysql #添加mysql组
[root@localhost opt]# useradd -r -g mysql mysql #添加mysql用户
[root@localhost opt]# tar xzvf mysql-5.6.24.tar.gz
[root@localhost opt]# yum -y install make gcc-c++ cmake bison-devel ncurses-devel libaio #安装编译代码所需要的包
[root@localhost opt]# cd /opt/mysql-5.6.24
[root@localhost mysql-5.6.24]# cmake -DCMAKE_INSTALL_PREFIX=/usr/local/mysql \ [MySQL安装的根目录]
-DMYSQL_DATADIR=/mydata/mysql/data \ [MySQL数据库文件存放目录]
-DSYSCONFDIR=/etc \ [MySQL配置文件所在目录]
-DMYSQL_USER=mysql \ [MySQL用户名]
-DWITH_MYISAM_STORAGE_ENGINE=1 \ [MySQL的数据库引擎]
-DWITH_INNOBASE_STORAGE_ENGINE=1 \ [MySQL的数据库引擎]
-DWITH_ARCHIVE_STORAGE_ENGINE=1 \ [MySQL的数据库引擎]
-DWITH_MEMORY_STORAGE_ENGINE=1 \ [MySQL的数据库引擎]
-DWITH_READLINE=1 \ [MySQL的readline library]
-DMYSQL_UNIX_ADDR=/var/run/mysql/mysql.sock \ [MySQL的通讯目录]
-DMYSQL_TCP_PORT=3306 \ [MySQL的监听端口]
-DENABLED_LOCAL_INFILE=1 \ [启用加载本地数据]
-DENABLE_DOWNLOADS=1 \ [编译时允许自主下载相关文件]
-DWITH_PARTITION_STORAGE_ENGINE=1 -DEXTRA_CHARSETS=all \ [使MySQL支持所有的扩展字符]
-DDEFAULT_CHARSET=utf8 \ [设置默认字符集为utf8]
-DDEFAULT_COLLATION=utf8_general_ci \ [设置默认字符校对]
-DWITH_DEBUG=0 \ [禁用调试模式]
-DMYSQL_MAINTAINER_MODE=0 -DWITH_SSL:STRING=bundled \ [通讯时支持ssl协议]
-DWITH_ZLIB:STRING=bundled [允许使用zlib library]
[root@localhost mysql-5.6.24]# make && make install
[root@localhost local]# chown -R mysql:mysql /usr/local/mysql/ #修改mysql文件夹属组和属主
[root@localhost local]# chown -R mysql:mysql /mydata/mysql/data
[root@localhost etc]# vim /etc/my.cnf #修改my.conf配置文件
# For advice on how to change settings please see
# http://dev.mysql.com/doc/refman/5.6/en/server-configuration-defaults.html
[mysqld]
# Remove leading # and set to the amount of RAM for the most important data
# cache in MySQL. Start at 70% of total RAM for dedicated server, else 10%.
# innodb_buffer_pool_size = 128M
# Remove leading # to turn on a very important data integrity option: logging
# changes to the binary log between backups.
# log_bin
# These are commonly set, remove the # and set as required.
basedir=/usr/local/mysql
datadir=/mydata/mysql/data
socket=/var/lib/mysql/mysql.sock
character-set-server=utf8
user= mysql
# Remove leading
# to set options mainly useful for reporting servers.
# The server defaults are faster for transactions and fast SELECTs.
# Adjust sizes as needed, experiment to find the optimal values.
# join_buffer_size = 128M
# sort_buffer_size = 2M
# read_rnd_buffer_size = 2M
[mysqld_safe]
log-error=/var/log/mariadb/mariadb.log
pid-file=/var/run/mariadb/mariadb.pid
sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES
[root@localhost local]# /usr/local/mysql/scripts/mysql_install_db --user=mysql --basedir=/usr/local/mysql --datadir=/mydata/mysql/data
编译安装php
[root@localhost opt]# tar xzvf php-5.6.5.tar.gz
[root@localhost php-5.6.5]# ./configure --enable-opcache --prefix=/usr/local/php --with-config-file-path=/usr/local/php/etc --with-mysql=/usr/local/mysql --with-mysqli=/usr/local/mysql/bin/mysql_config --enable-mbstring=all --with-pdo-mysql --enable-sockets --enable-mbstring --enable-fpm --with-curl --with-iconv-dir=/usr/local --with-freetype-dir --with-jpeg-dir --with-png-dir --with-zlib --enable-xml --with-gd --with-libxml-dir=/usr --enable-xml --with-openssl --with-iconv
[root@localhost php-5.6.5]# make && make install
[root@localhost etc]# cp /opt/php-5.6.5/php.ini-development /usr/local/php/etc/php.ini
[root@localhost etc]# cd /usr/local/php/etc/
[root@localhost etc]# cp php-fpm.conf.default php-fpm.conf
[root@localhost etc]# /usr/local/php/sbin/php-fpm #启动php
[root@localhost html]# vim /usr/local/nginx/html/index.php #创建一个php页面
<?php
phpinfo();
?>
2、编写一个脚本完成以下功能:
(2)、可通过在脚本后面跟上一些参数来自定义安装目录等其他选项。
[root@localhost shell]# cat /shell/LNMP.conf #参数较多放在一个配置文件中
nginx_dir=/usr/local/nginx
mysql_dir=/user/local/mysql
mysqldata_dir=/mysqldata
php_dir=/usr/local/php
[root@localhost shell]# cat /shell/LNMP.sh
#!/bin/bash #加载配置文件
source $1 #nginx安装函数
nginx() {
groupadd -r nginx
useradd -s /sbin/nologin -g nginx -r nginx
cd /opt
echo "------------开始安装nginx-1.8.1------------"
wget http://nginx.org/download/nginx-1.8.1.tar.gz
tar xzvf nginx-1.8.1.tar.gz
cd nginx-1.8.1
./configure --prefix=${nginx_dir} --with-http_realip_module --with-http_sub_module --with-http_ssl_module --with-http_gzip_static_module --with-pcre
make && make install
}
#mysql安装模块
mysql() {
groupadd mysql
useradd -r -g mysql mysql
cd /opt echo "------------开始安装libmcrypt-2.5.7------------"
wget http://dev.mysql.com/get/Downloads/MySQL-5.6/mysql-5.6.24.tar.gz
tar mysql-5.6.24.tar.gz cd mysql-5.6.24
cmake . -DCMAKE_INSTALL_PREFIX=${mysql_dir} \
-DMYSQL_DATADIR=${mysqldata_dir} \
-DDEFAULT_CHARSET=utf8 \
-DDEFAULT_COLLATION=utf8_general_ci \
-DMYSQL_USER=mysql \
-DMYSQL_GROUP=mysql
make && make install
cp /usr/local/mysql/support-files/my-default.cnf /etc/my.cnf
chown -R root:mysql ${mysql_dir}
chown -R root:mysql ${mysqldata_dir}
}
#php安装模块
php() {
cd /opt
echo "------------开始安装libmcrypt-2.5.7------------"
wget ftp://mcrypt.hellug.gr/pub/crypto/mcrypt/libmcrypt/libmcrypt-2.5.7.tar.gz
tar xvf libmcrypt-2.5.7.tar.gz
cd /opt/libmcrypt-2.5.7
./configure --prefix=/usr/local/libmcrypt && make && make instal
l
echo "------------开始安装php-5.6.5------------"
wget http://cn2.php.net/distributions/php-5.6.5.tar.gz
tar xzvf php-5.6.5.tar.gz
cd php-5.6.5
./configure --enable-opcache --prefix=${php_dir} --with-config-file-path=${php_dir}/etc --with-mysql=${mysql_dir} --with-mysqli=${mysql_dir}/bin/mysql_config --enable-mbstring=all --with-pdo-mysql --enable-sockets --enable-mbstring --enable-fpm --with-curl --with-iconv-dir=/usr/local --with-freetype-dir --with-jpeg-dir --with-png-dir --with-zlib --enable-xml --with-gd --with-libxml-dir=/usr --enable-xml --with-openssl --with-iconv && make && make install
cp ${php_dir}/etc/php-fpm.conf.default ${php_dir}/etc/php-fpm.conf
cp /opt/php-5.6.5/php.ini-development ${php_dir}/etc/php.ini
}
yum -y install gcc gcc-c++ make pcre-* zlib-* cmake ncurses-devel libjpeg* libpng* freetype* libcurl-devel libvpx-devel libxml2 libxml2-devel libXpm libXpm-devel libXpm.i686 libXpm.i686-devel openldap-devel
#安装nginx软件
nginx
if [ $? -eq 0 ];then
echo "nginx安装成功!!!"
else
echo "nginx安装异常!!!"
exit
fi
#安装mysql数据库
mysql
if [ $? -eq 0 ];then
echo "mysql安装成功!!!"
else
echo "mysql安装异常!!!"
exit
fi
#安装php
php if [ $? -eq 0 ];then
echo "php安装成功!!!"
exit
else
echo "php安装异常!!!"
exit
fi
原创文章,作者:victorli88,如若转载,请注明出处:http://www.178linux.com/73088


评论列表(1条)
写点很棒,希望可以继续保持,再接再厉