编译工具包是少不了的先搞起吧
yum -y install gcc gcc-c++ libxml2 libxml2-devel autoconf libjpeg libjpeg-devel libpng libpng-devel freetype freetype-devel zlib zlib-devel glibc glibc-devel glib2 glib2-devel
./configure: error: the HTTP rewrite module requires the PCRE library 错误
http://sourceforge.net/projects/pcre/files/pcre/ PCRE 这个扩展包
1、先从http://wiki.nginx.org/Install 这个网站下载最近稳定的版本
我下的是 nginx-1.2.6.tar.gz
tar -xvf nginx-1.2.6.tar.gz
cd nginx-1.2.6
有兴趣的读者可以参考一下 http://wiki.nginx.org/Modules 的模块配置,写得非常的详细
./configure --prefix=/usr/local 我就选了一个安装目录 ,其它的让他默认选择
#make
#make install
启动 #/usr/local/nginx/sbin/nginx
关闭 #ps -ef|grep nginx
# kill -9 nginx 进程号(非官方,不过你可以看看http://wiki.nginx.org/NginxCommandLine)
ubutun 可以需要 sudo apt-get install libpcre3 libpcre3-dev
sudo apt-get install openssl libssl-dev
安装MySQL
#groupadd mysql
#useradd -r -g mysql mysql 创建帐号,但不创建目录
#cd /usr/local
#cd mysql
#chown -R mysql:mysql .
# yum -y install cmake
# yum -y install ncurses-devel
cmake \
-DCMAKE_INSTALL_PREFIX=/usr/local/webserver/mysql \
-DMYSQL_DATADIR=/user/local/webserver/mysql/data \
-DSYSCONFDIR=/etc \
-DEXTRA_CHARSETS=all \
-DDEFAULT_CHARSET=utf8 \
-DDEFAULT_COLLATION=utf8_general_ci \
-DWITH_INNOBASE_STORAGE_ENGINE=1 \
-DWITH_ARCHIVE_STORAGE_ENGINE=1 \
-DWITH_BLACKHOLE_STORAGE_ENGINE=1 \
-DWITH_FEDERATED_STORAGE_ENGINE=1 \
-DWITH_PARTITION_STORAGE_ENGINE=1 \
-DWITH_PERFSCHEMA_STORAGE_ENGINE=1 \
-DMYSQL_UNIX_ADDR=/tmp/mysqld.sock \
-DMYSQL_TCP_PORT=3306 \
-DWITH_DEBUG=0 \
-DENABLED_LOCAL_INFILE=1
#scripts/mysql_install_db --user=mysql
# chown -R root .
# chown -R mysql data
#设置Mysql
#在support-files目录中有五个配置信息文件(这里很重要,一定要根据自己的内存复制对应的cnf文件,否则mysql始终起不来):
#my-small.cnf (内存<=64M)
#my-medium.cnf (内存 128M)
#my-large.cnf (内存 512M)
#my-huge.cnf (内存 1G-2G)
#my-innodb-heavy-4G.cnf (内存 4GB)
cd /usr/local/webserver/mysql
cp ./support-files/my-huge.cnf /etc/my.cnf
vi /etc/my.cnf
#在 [mysqld] 段增加
datadir = /data/mysql
wait-timeout = 30
max_connections = 512
default-storage-engine = MyISAM
#在 [mysqld] 段修改
max_allowed_packet = 16M
#cp support-files/my-medium.cnf /etc/my.cnf
#bin/mysqld_safe --user=mysql &
#cp support-files/mysql.server /etc/init.d/mysqld
#chmod 755 /etc/init.d/mysql
# chkconfig mysql on
启动并设置初始密码
# /etc/init.d/mysql start
# mysqladmin -uroot password '123123'
进行再修改密码的语句
1: UPDATE mysql.user SET Password = PASSWORD(‘newpwd’) WHERE User = ‘root’;(生新设置密码)
2: flush privileges;(刷新权限)
mysql 5.6源码安装时发生了一个警告Googlemock was not found,看了一下,是新版mysql 5.6还支持了google的c++mock框架了,提示带了-DENABLE_DOWNLOADS=1可解决这个问题(就是允许下载)。
cmake -DCMAKE_INSTALL_PREFIX=/usr/local/mysql -DMYSQL_UNIX_ADDR=/usr/local/mysql/mysql.sock -DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_general_ci -DWITH_EXTRA_CHARSETS:STRING=utf8,gbk -DWITH_MYISAM_STORAGE_ENGINE=1 -DWITH_INNOBASE_STORAGE_ENGINE=1 -DWITH_MEMORY_STORAGE_ENGINE=1 -DWITH_READLINE=1 -DENABLED_LOCAL_INFILE=1 -DMYSQL_DATADIR=/usr/local/mysql -DMYSQL_USER=mysql -DMYSQL_TCP_PORT=3306 -DENABLE_DOWNLOADS
接下来可以在mysql-5.6.10/source_downloads这个路径下会下载一个gmock-1.6.0.zip文件, 这个文件的安装
unzip gmock-1.6.0.zip ./configure make
mysql 安装完成
安装从php.net 下载的php-5.4.10.tar.bz2 源码
#tar -xvf php-5.4.10.tar.bz2
#cd php-5.4.10
# mkdir /usr/local/php
#./configure --prefix=/usr/local/php //什么也不设置 后面加扩长模块
添加帐号和帐号组
#groupadd www
#useradd
-g www -s
/sbin/nologin
-M www
/sbin/nologin意思是用户不允许登录
不能登录ssh(-s参数指定)
#./configure --prefix=/usr/local/php --with-iconv --with-zlib --enable-xml --disable-rpath --enable-safe-mode --enable-bcmath --enable-shmop --enable-sysvsem --enable-inline-optimization --with-curl --with-curlwrappers --enable-mbregex --enable-mbstring --with-mcrypt --with-gd --enable-gd-native-ttf --with-openssl --with-mhash --enable-pcntl --enable-sockets --with-xmlrpc --enable-zip --enable-soap --without-pear --with-mysql --with-mysqli --enable-sqlite-utf8 --with-pdo-mysql --enable-ftp --with-jpeg-dir --with-freetype-dir --with-png-dir --enable-fpm --with-fpm-user=www --with-fpm-group=www --enable-maintainer-zts
中间报错的 error 你可以参考一下
configure: error: xml2-config not found. Please check your libxml2 installation.
yum install libxml2-devel
configure: error: Cannot find OpenSSL’s
yum install openssl-devel
configure: error: Please reinstall the libcurl distribution -
easy.h should be in /include/curl/
yum install curl-devel
configure: error: libjpeg.(a|so) not found
yum install libjpeg-devel
configure: error: libpng.(a|so) not found.
yum install libpng-devel
configure: error: libXpm.(a|so) not found.
yum install libXpm-devel
configure: error: freetype.h not found.
yum install freetype-devel
configure: error: utf8_mime2text() has new signature, but U8T_CANONICAL is missing. This should not happen. Check config.log for additional information.
yum install libc-client-devel
configure: error: mcrypt.h not found. Please reinstall libmcrypt.
yum install libmcrypt-devel
configure: error: Please reinstall libmhash – I cannot find mhash.h
yum install mhash-devel
configure: error: Cannot find MySQL header files under /usr.
Note that the MySQL client library is not bundled anymore!
yum install mysql-devel
configure: error: Please reinstall ming distribution. libming.(a|so) not found
- temp remove the config for ‘–with-ming=/opt/ming/’
configure: error: Cannot find pspell
yum install pspell-devel
checking size of char... configure: error: cannot compute sizeof (char)
我是在编译php的./configure步骤时出现这个错误的
解决办法一:把--disable-rpath去掉,不建议这样做
解决办法二:因为路径系统查找路径错误,export如下变量后再./configure:
LIBS="-lm -ltermcap -lresolv"
DYLD_LIBRARY_PATH="/var/lib/mysql:/lib/:/usr/lib/:/usr/local/lib:/lib64/:/usr/lib64/:/usr/local/lib64"
LD_LIBRARY_PATH="/var/lib/mysql:/lib/:/usr/lib/:/usr/local/lib:/lib64/:/usr/lib64/:/usr/local/lib64"
export LIBS DYLD_LIBRARY_PATH LD_LIBRARY_PATH
--------------------------------------------------
export LD_LIBRARY_PATH=/lib/:/usr/lib/:/usr/local/lib
编译完后,没问题再继续执行以下脚本
make ZEND_EXTRA_LIBS='-liconv'
遇到一个libtool: link: `ext/openssl/xp_ssl.lo' is not a valid libtool object 的错误
解决方法下载文档
debian_patches_disable_SSLv2_for_openssl_1_0_0.patch attached to that bug report.
Download this patch to your ~/Downloads/php-5.2.17
directory, and execute:
patch -p1 < debian_patches_disable_SSLv2_for_openssl_1_0_0.patch.patch
#make & make install
cp php.ini-production /usr/local/php/lib/php.ini #这个位置最好是把phpinfo()看了再做决定
cp php-5.4.10/sapi/fpm/php-fpm.conf /usr/local/php/etc/php-fpm.conf
#去掉/更改 配置文件中的;
pm.max_children = 64
pm.start_servers = 20
pm.min_spare_servers = 5
pm.max_spare_servers = 35
pm.max_requests = 1024
user = www
group = www
#检查语法是否正确
/usr/local/php/sbin/php-fpm -t
#出现NOTICE: configuration file /usr/local/php/etc/php-fpm.conf test is successful 测试成功
/usr/local/php/sbin/php-fpm &
#设置开机启动
vi /etc/rc.d/rc.local
#在行末加入
/usr/local/php/sbin/php-fpm &
Ubuntu 配置一下PHP 开机运行
步骤五:[root@localhost php-5-4.3]# cp php.ini-development /usr/local/php/etc/php.ini
cp php-fpm.conf.default php-fpm.conf
cd /home/jackluo/Downloads/php-5.4.14/sapi/fpm
cp init.d.php-fpm /etc/init.d/php-fpm
chmod +x /etc/init.d/php-fpm
vi /etc/init.d/php-fpm
php_fpm_BIN=/usr/local/php/sbin/php-fpm
php_fpm_CONF=/usr/local/php/etc/php-fpm.conf
php_fpm_PID=/usr/local/php/var/run/php-fpm.pid
Ubuntu php-fpm开机自启动设置
[root@localhost root]# update-rc.d -f php-fpm defaults
[root@localhost root]# runlevel
如果显示出当前服务等级“ runlevel N 2”然后接着输:
[root@localhost root]# ln -s /etc/init.d/php-fpm S99php-fpm
大功告成。开机php-fpm即可自启动了。
如果停止开机自启动可输入:
[root@localhost root]# update-rc.d -f php-fpm remove
配置一下Nginx
vi /usr/local/nginx/conf/nginx.conf
user www www;
location ~ .*\.(php|php5)?$ {
root /var/www/html;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
#fastcgi_param SCRIPT_FILENAME /scripts$fastcgi_script_name;
include fastcgi_params;
}
更多详细配置参考官方文档 http://wiki.nginx.org/Configuration
#检测配置文件
/usr/local/nginx/sbin/nginx -t
#开启Nginx
/usr/local/nginx/sbin/nginx
平滑重启Nginx
/usr/local/nginx/sbin/nginx -s reload
添加开机启动
vi /etc/rc.d/rc.local
最后一行加入
/usr/local/nginx/sbin/nginx &
动态添加编译PHP 模块 用 soap 为例子
先来到php-5.4.11/etc/soap 下
#/usr/local/php/bin/phpize
可能报错:
遇到问题:Cannot find autoconf. Please check your autoconf installation and the $PHP_AUTOCONF environment variable. Then, rerun this script.
wget http://ftp.gnu.org/gnu/m4/m4-1.4.9.tar.gz tar -zvxf m4-1.4.9.tar.gz cd m4-1.4.9/ ./configure && make && make install cd ../ wget http://ftp.gnu.org/gnu/autoconf/autoconf-2.62.tar.gz tar -zvxf autoconf-2.62.tar.gz
cd autoconf-2.62/ ./configure && make && make install
这是再次执行sudo /usr/local/php/bin/phpize,就可以成功生成configure文件了。(phpize是用来扩展php扩展模块的,通过phpize可以建立php的外挂模块,官方说明网址为:http://php.net/manual/en/install.pecl.phpize.php)
#./configure --with-php-config=/usr/local/php/bin/php-config --enable-soap
#make
#make install
# /usr/local/php/lib/php/extensions/no-debug-non-zts-20100525/soap.so 这个文件已经生成了
# vi /usr/local/php/etc/php.ini
修改 extension_dir = "/usr/local/php/lib/php/extensions/no-debug-non-zts-20100525/"
再句一名 extension = "soap.so"
重启nginx 应该就有了
killall nginx
killall php
/usr/local/php/sbin/php-fpm
/usr/local/nginx/sbin/nginx
安装MeMcached
http://www.memcached.org/ 从这儿下载
需要libevent is required. You can get it from http://www.monkey.org/~provos/libevent/下载