njl 发表于 2014-7-3 18:20:36

LNMP源码编译安装

所用软件:
                   nginx-1.4.7.tar.gz
                   php-5.4.22.tar.gz
                   mysql-5.5.34.tar.gz
                   libmcrypt-2.5.7.tar.gz
               
mkdir -pv /opt/app/{nginx,mysql,php}
for i in www mysql;do /usr/sbin/useradd -s /sbin/nologin $i;done

for i in ` rpm -qmake apr* freetype-devel cmake autoconf automake curl-devel gcc gcc-c++ zlib-devel openssl openssl-devel pcre-devel gd kernel keyutils patch perl kernel-headers compat* mpfr cpp glibc libgomp libstdc++-devel ppl cloog-ppl keyutils-libs-devel libcom_err-devel libsepol-devel libselinux-devel krb5-devel zlib-devel libXpm* freetype libjpeg* libpng* php-common php-gd ncurses* libtool* libxml2 libxml2-devel patch|grep 'not installed' | awk '{print $2}' `; do echo $i; done



tar xzf nginx-1.4.7.tar.gz && cd nginx*

./configure --prefix=/opt/app/nginx/ \
> --user=www \
> --group=www \
> --with-http_stub_status_module \
> --with-http_gzip_static_module \
> --with-http_ssl_module \
> --with-pcre

make
make install
/opt/app/nginx/sbin/nginx -t
nginx: the configuration file /opt/app/nginx//conf/nginx.conf syntax is ok
nginx: configuration file /opt/app/nginx//conf/nginx.conf test is successful



mkdir /opt/mysql/data
chown -R mysql.mysql /opt/app/mysql/
tar xzf mysql-5.5.34.tar.gz && cd mysql*

cmake -DCMAKE_INSTALL_PREFIX=/opt/app/mysql \
-DSYSCONFDIR=/opt/app/mysql/etc \
-DMYSQL_DATADIR=/opt/app/mysql/data \
-DMYSQL_TCP_PORT=3306 \
-DMYSQL_UNIX_ADDR=/tmp/mysqld.sock \
-DMYSQL_USER=mysql \
-DEXTRA_CHARSETS=all \
-DWITH_READLINE=1 \
-DWITH_SSL=system \
-DWITH_EMBEDDED_SERVER=1 \
-DENABLED_LOCAL_INFILE=1 \
-DWITH_INNOBASE_STORAGE_ENGINE=1

make
make install
mkdir /opt/app/mysql/log
mkdir /opt/app/mysql/etc
cp support-files/my-medium.cnf /opt/app/mysql/etc/my.cnf
chmod 755 scripts/mysql_install_db
scripts/mysql_install_db --user=mysql --basedir=/opt/app/mysql/ --datadir=/opt/app/mysql/data/
Installing MySQL system tables...
OK
Filling help tables...
OK

To start mysqld at boot time you have to copy
support-files/mysql.server to the right place for your system

PLEASE REMEMBER TO SET A PASSWORD FOR THE MySQL root USER !
To do so, start the server, then issue the following commands:

/opt/app/mysql//bin/mysqladmin -u root password 'new-password'
/opt/app/mysql//bin/mysqladmin -u root -h tools1 password 'new-password'

Alternatively you can run:
/opt/app/mysql//bin/mysql_secure_installation

which will also give you the option of removing the test
databases and anonymous user created by default.This is
strongly recommended for production servers.

See the manual for more instructions.

You can start the MySQL daemon with:
cd /opt/app/mysql/ ; /opt/app/mysql//bin/mysqld_safe &

You can test the MySQL daemon with mysql-test-run.pl
cd /opt/app/mysql//mysql-test ; perl mysql-test-run.pl

Please report any problems with the /opt/app/mysql//scripts/mysqlbug script!


mkdir /opt/mysql/init.d
mkdir /opt/app/mysql/init.d
cp support-files/mysql.server /opt/app/mysql/init.d/mysql
chmod a+x /opt/app/mysql/init.d/mysql
/opt/mysql/init.d/mysql start
启动报错StartingMySQL.. ERROR! The server quit without updating PID file (/var/lib/mysql/mysql.pid).解决办法:

vim/opt/mysql/etc/my.cnf
下面添加
datadir= /opt/mysql/data

chown -R mysql.mysql /opt/mysql/data/ 修改所属属性

/opt/app/mysql/init.d/mysql start
Starting MySQL..                                          



tar xzf libmcrypt-2.5.7.tar.gz && cd libmcrypt*
./configure && make && meke install



tar xzf php-5.4.22.tar.gz && cd php*


./configure --prefix=/opt/app/php \
--with-mysql=/opt/app/mysql/ \
--with-mysqli=/opt/app/mysql/bin/mysql_config \
--with-gd --with-iconv --with-freetype-dir\
--with-png-dir \
--enable-xml \
--enable-fpm \
--with-mcrypt \
--with-curl \
--enable-sockets \
--with-libxml-dir \
--enable-zip \
--with-gettext \
--enable-session

make
make install
cp php.ini-production /opt/app/php/etc/php.ini




end


后期实现脚本自动安装!

页: [1]
查看完整版本: LNMP源码编译安装