Ubuntu 12.04 编译安装 LAMP , LNMP 环境
PHP 设置: timezone, error_log
Timezone: 服务器建议使用UTC 0区,且无夏时令,即 Atlantic/Reykjavik。
如果在个人PC上开发,建议也使用0区,与服务器一致。
----------------------------------
sudo vi /usr/local/php/lib/php.ini
date.timezone = Atlantic/Reykjavik
----------------------------------
Error Log: 开发环境显示Notice,“警告即错误”,要保证代码是 0 notice 0 warning。
----------------------------------
sudo vi /usr/local/php/lib/php.ini
display_errors = On
error_reporting = E_ALL | E_STRICT
----------------------------------
生产环境不显示错误。
----------------------------------
sudo vi /usr/local/php/lib/php.ini
display_errors = Off
----------------------------------
※ 在编译安装LAMP环境时需要的编译器有gcc,g++,make,cmake(编译安装mysql)
我们需要敲命令,如果编译的软件没有安装我们需要安装上
dpkg -l | grep gcc
dpkg -l | grep g++ [在 12.04 上未默认安装]
dpkg -l | grep make
dpkg -l | grep cmake [在 12.04 上未默认安装]
1. 手动编译安装 Nginx 1.2.0
1) Nginx下载页面:http://nginx.org/en/download.html
sudo apt-get install -y libpcre3 libpcre3-dev zlib1g-dev
wget http://nginx.org/download/nginx-1.2.0.tar.gz
tar -zxvf nginx-1.2.0.tar.gz
cd nginx-1.2.0
./configure --prefix=/usr/local/nginx
make
sudo make install
sudo ln -s /usr/local/nginx/sbin/nginx /etc/init.d/
sudo /etc/init.d/nginx
访问本机首页 http://localhost/,如果正常,则说明nginx已启动
把Nginx加入服务,开机自启动
2. 手动编译安装 mysql-5.5.23 源码包
1) sudo apt-get install cmake
//sudo apt-get install make
sudo apt-get install libncurses5-dev
sudo apt-get install build-essential
[OR]sudo apt-get install g++
sudo apt-get install bison
cd ~
wget http://dev.mysql.com/get/Download/MySQL-5.5/mysql-5.5.23.tar.gz/from/http://mysql.cs.pu.edu.tw/ -O mysql-5.5.23.tar.gz
sudo groupadd mysql
sudo useradd -r -g mysql mysql
mkdir -p /usr/local/mysql #创建MySQL安装目录
tar -zxvf mysql-5.5.23.tar.gz
cd mysql-5.5.23
/usr/bin/cmake . -DCMAKE_INSTALL_PREFIX=/usr/local/mysql/ -DMYSQL_DATADIR=/usr/local/mysql/data -DWITH_INNOBASE_STORAGE_ENGINE=1 -DMYSQL_TCP_PORT=3306 -DMYSQL_UNIX_ADDR=/usr/local/mysql/data/mysql.sock -DMYSQL_USER=mysql -DWITH_DEBUG=0
make
sudo make install
cd /usr/local/mysql
sudo chown -R mysql .
sudo chgrp -R mysql .
sudo /usr/local/mysql/scripts/mysql_install_db --user=mysql
sudo chown -R root .
sudo chown -R mysql data
sudo cp support-files/my-huge.cnf /etc/my.cnf #my-medium.cnf
sudo ln -s /usr/local/mysql/bin/mysql /usr/bin/
sudo ln -s /usr/local/mysql/bin/mysqldump /usr/bin/
sudo cp support-files/mysql.server /etc/init.d/mysql
sudo /etc/init.d/mysql start
./bin/mysqladmin -u root password '8ik,lp-'
sudo /etc/init.d/mysql restart
mysql -uroot -p
配置 my.cnf
#设置mysql监听外网ip
#bind-address = 127.0.0.1
#设置mysql 字符集 charset
#在[mysqld]下面加入一行
character-set-server = utf8
在[mysql]下面加入一行
default-character-set = utf8
#mysql> status
#mysql> show variables like 'character_set%';
[mysqld]
user = mysql
basedir = /usr/local/mysql
datadir = /usr/local/mysql/data
添加服务 让mysqld开机自动启动
sudo cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysql
sudo update-rc.d mysql defaults
3. 手动编译安装 PHP 5.3.x 源码包
1) 安装支持包:
sudo apt-get install -y libltdl-dev libssl-dev sendmail libjpeg8 libjpeg8-dev libpng12-0 libpng12-dev libxml2-dev libcurl4-openssl-dev libmcrypt-dev
2) 创建php目录,指定权限:
sudo mkdir /usr/local/php
cd /usr/local/php
sudo chown -R www-data
3) 下载PHP:
wget http://cn2.php.net/get/php-5.4.3.tar.gz/from/this/mirror
tar zxvf mirror
cd php-5.4.3
4) 编译
./configure --prefix=/usr/local/php --enable-fpm --with-fpm-user=www-data --with-fpm-group=www-data --with-curl --with-mcrypt --enable-mbstring --enable-pdo --with-pdo-mysql=mysqlnd --with-mysqli=mysqlnd --with-mysql=mysqlnd --with-openssl --with-imap-ssl --with-gd --with-jpeg-dir=/usr/lib/ --with-png-dir=/usr/lib/ --enable-exif --enable-zip
如果 出错,报:
PEAR package PHP_Archive not installed: generated phar will require PHP's phar extension be enabled.
解决方法:
参考:http://blog.csdn.net/sflsgfs/article/details/6298310
将以下页面内容复制,保存为 go-pear.php
http://pear.php.net/go-pear
sudo vi go-pear.php
保存后再次编译通过。
5) 根据提示make
make
make test
sudo make install
6)
sudo cp php.ini-development /usr/local/php/lib/php.ini
sudo ln -s /usr/local/php/bin/php /usr/bin/php
sudo cp /usr/local/php/etc/php-fpm.conf.default /usr/local/php/etc/php-fpm.conf
设置php-fpm.conf,去掉以下参数前面的;
sudo vi /usr/local/php/etc/php-fpm.conf
pid = run/php-fpm.pid
error_log = log/php-fpm.log
log_level = notice
pm.start_servers=
pm.min_spare_servers=
pm.max_spare_servers=
7) 设置开机自启动
sudo cp sapi/fpm/init.d.php-fpm /etc/init.d/php-fpm
sudo chmod 755 /etc/init.d/php-fpm
sudo update-rc.d php-fpm defaults
sudo /usr/local/php/sbin/php-fpm
8) 编辑nginx配置文件
sudo vi /usr/local/nginx/conf/nginx.conf
server {
listen 80;
server_name localhost;
rewrite_log on;
#rewrite ^/(([0-9]+\.)+[0-9]+)/ /$1/www/index.php last;
location / {
root html;
index index.html index.htm index.php;
autoindex on;
}
location ~ \.php$ {
root html;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root/$fastcgi_script_name;
include fastcgi_params;
}
}
9) sudo killall nginx
sudo /etc/init.d/nginx
10) nginx服务器解析不了php,报404错误,解决方法:
修改nginx/conf/nginx.conf文件中对应的php配置部分
fastcgi_param这个参数默认的是$fastcgi_script_name;最好改为$document_root$fastcgi_script_name;我在实际配置中出 现了php找不到需要解析文件而返回404或者500错误的问题。所以最好是带上网站根目录的路径变量$document_root。
4. 安装 phpredis模块
1) 下载 phpredis
https://github.com/nicolasff/phpredis/downloads
2) shell> cd phpredis
shell> /usr/local/php/bin/phpize #这个phpize是安装php模块的
shell> sudo apt-get install autoconf #这步有可能要做的,如果缺少 autoconf
shell> ./configure –with-php-config=/usr/local/php/bin/php-config
shell> make
shell> make test
shell> sudo make install
3) 接下来在php.ini中添加extension=redis.so 先要看看有没有extension_dir=/…….
4) shell> sudo /etc/init.d/php-fpm restart
重启apache或者nginx
PHP 代码测试
<?php
$redis = new Redis();
$redis->connect(‘127.0.0.1′,6379);
$redis->set(‘test’,'hello world!’);
echo $redis->get(‘test’);
?>
输出hello world!
5. 安装 Redis 服务
1)
6. 安装 memcache 和 memcached 服务
1) 安装 Memcached Server
1> cd Downloads
wget https://github.com/downloads/libevent/libevent/libevent-2.0.19-stable.tar.gz
wget http://memcached.googlecode.com/files/memcached-1.4.13.tar.gz
2> tar zxvf libevent-2.0.19-stable.tar.gz
cd libevent-2.0.19-stable
./configure --prefix=/usr/local/libevent-2.0.19
make
sudo make install
3> tar zxvf server-memcached-1.4.13.tar.gz
cd memcached-1.4.13
./configure --prefix=/usr/local/memcached-1.4.13 --with-libevent=/usr/local/libevent-2.0.19/
make
sudo make install
4> sudo /usr/local/memcached-1.4.13/bin/memcached -d -m 64 -u root -l 192.168.0.200 -p 11211 -c 256 –P /tmp/memcached.pid
7. 安装 memcache 和 memcached 扩展
1) 安装 PHP 模块 memcached 扩展
1> cd Downloads
wget https://launchpad.net/libmemcached/1.0/1.0.8/+download/libmemcached-1.0.8.tar.gz
wget http://pecl.php.net/get/memcached-2.0.1.tgz
2> tar zxf libmemcached-1.0.8.tar.gz
cd libmemcached-1.0.8
sudo apt-get install libevent-dev cloop-ppl
./configure --prefix=/usr/local/libmemcached --with-memcached
make
sudo make install
#问题备注: https://answers.launchpad.net/libmemcached/+question/195068
http://stackoverflow.com/questions/11025752/libmemcached-1-0-8-make-fails-in-ubuntu-lucid
3> tar zxf memcached-2.0.1.tgz
cd memcached-2.0.1
/usr/local/php/bin/phpize
./configure --enable-memcached --with-php-config=/usr/local/php/bin/php-config --with-libmemcached-dir=/usr/local/libmemcached
make
sudo make install
4> vi /usr/local/php/lib/php.ini
#加入
extension=memcached.so
5> sudo /etc/init.d/php-fpm restart
2) 安装 PHP 模块 memcache 扩展【待总结】