共计 12680 个字符,预计需要花费 32 分钟才能阅读完成。
LAMP 编译安装
一、服务器环境
[root@linuxidc ~]# cat /etc/RedHat-release
Red Hat Enterprise Linux Server release 5.8 (Tikanga)
[root@linuxidc ~]# uname -a
Linux linuxidc 2.6.18-308.el5 #1 SMP Fri Jan 27 17:21:15 EST 2012 i686 i686 i386 GNU/Linux
二、基础环境安装
yum install gcc gcc-c++ bison autoconf automake zlib-devel ncurses-devel libjpeg-devel libpng-devel libtiff-devel freetype-devel pam-devel openssl-devel libxml2-devel
三、APACHE 安装
1、下载并解压
wget http://mirrors.cnnic.cn/apache/httpd/httpd-2.2.26.tar.gz
tar xzvf httpd-2.2.26.tar.gz
cd httpd-2.2.26
2、编译安装
./configure \
-prefix=/data/apache \
-enable-module=so \
-enable-deflate=shared \
-enable-rewrite=shared \
-enable-cache \
-enable-file-cache \
-with-mpm=worker \
-enable-threads \
Make && make install
相对来说,prefork 方式速度要稍高于 worker,然而它需要的 cpu 和 memory 资源也稍多于 woker。
3、启动 apache 服务
./apachectl start
启动报错:httpd: Could not reliably determine the server’s fully qualified domain name,
using 127.0.0.1 for ServerName
4、修改配置文件
vi httpd.conf
#ServerName www.example.com:80
ServerName localhost:80
5、重新启动 apache 服务
[root@hrd bin]# ./apachectl start
[root@hrd bin]# ps -ef|grep httpd
root 5189 1 0 16:04 ? 00:00:00 /data/apache/bin/httpd -k start
daemon 5190 5189 0 16:04 ? 00:00:00 /data/apache/bin/httpd -k start
daemon 5191 5189 0 16:04 ? 00:00:00 /data/apache/bin/httpd -k start
daemon 5193 5189 0 16:04 ? 00:00:00 /data/apache/bin/httpd -k start
daemon 5195 5189 0 16:04 ? 00:00:00 /data/apache/bin/httpd -k start
root 5276 14464 0 16:04 pts/1 00:00:00 grep httpd
如上表示启动成功。
6、配置虚拟站点
a. 开启虚拟站点功能。取消 Incldue 前的注释 #
[root@hrd conf]# grep vhost httpd.conf
Include conf/extra/httpd-vhosts.conf
b. 配置虚拟站点配置文件
cd /data/apache/conf/extra
<VirtualHost *:80> 端口为 80
ServerAdmin webmaster@dummy-host.example.com 管理员邮箱
DocumentRoot “/home/www/wwwroot” 站点目录
ServerName linuxidc.com 站点域名
ServerAlias www.linuxidc.com 站点别名
ErrorLog “logs/linuxidc-error_log” 站点错误日志
CustomLog “logs/linuxidc-access_log” common 站点日志
</VirtualHost>
C. 创建网站目录和首页文件
Mkdir www
Echo www >index.html
7、重启 apache 服务,并检查授权文件
[root@hrd bin]# ./apachectl graceful
[root@hrd bin]# vi httpd.conf
<Directory /home/www/wwwroot> 网站目录
Options FollowSymLinks
AllowOverride None 浏览目录
Order allow,deny 允许访问
Allow from all
</Directory>
8、域名访问显示正常
四、apache 优化
1、启用网站缓存功能
如果已经编译完成,没有编译 mod_expires 参数,手工添加
/usr/local/apache/bin/apxs
-i -a -c /usr/local/soft/httpd-2.2.26/modules/metadata/mod_expires.c
chmod 755 /usr/local/apache/modules/mod_expires.so
2、检查是否安装成功
[root@linuxidc conf]# grep mod_expires.so httpd.conf
LoadModule expires_module modules/mod_expires.so
3、添加缓存文件类型到配置文件,缓存时间设置为 1 年
<IfModule mod_expires.c>
ExpiresActive On 激活缓存功能
ExpiresDefault “access plus 12 month”
ExpiresByType text/html “access plus 12 months” 文本
ExpiresByType text/css “access plus 12 months” 样式
ExpiresByType image/gif “access plus 12 months” 动态
ExpiresByType image/jpeg “access plus 12 months” 图片
ExpiresByType image/jpg “access plus 12 months” 图片
ExpiresByType image/png “access plus 12 months” 图片
EXpiresByType application/x-shockwave-flash “access plus 12 months”
EXpiresByType application/x-Javascript “access plus 12 months”
ExpiresByType video/x-flv “access plus 12 months”
</IfModule>
推荐阅读 :
Ubuntu 13.04 安装 LAMP\Vsftpd\Webmin\phpMyAdmin 服务及设置 http://www.linuxidc.com/Linux/2013-06/86250.htm
CentOS 5.9 下编译安装 LAMP(Apache 2.2.44+MySQL 5.6.10+PHP 5.4.12) http://www.linuxidc.com/Linux/2013-03/80333p3.htm
RedHat 5.4 下 Web 服务器架构之源码构建 LAMP 环境及应用 PHPWind http://www.linuxidc.com/Linux/2012-10/72484p2.htm
LAMP 源码环境搭建 WEB 服务器 Linux+Apache+MySQL+PHP http://www.linuxidc.com/Linux/2013-05/84882.htm
4、启动网站压缩功能
如果已经编译完成,没有编译 mod_expires 参数,手工添加
/usr/local/apache/bin/apxs -i -a -c
/usr/local/soft/httpd-2.2.26/modules/filters/mod_deflate.c
chmod 755 /usr/local/apache/modules/mod_deflate.so
5、检查是否安装成功
[root@linuxidc conf]# grep mod_deflate.so httpd.conf
LoadModule deflate_module modules/mod_deflate.so
6、添加压缩文件类型到配置文件
<ifmodule mod_deflate.c>
DeflateCompressionLevel 3
SetOutputFilter DEFLATE
BrowserMatch ^Mozilla/4 gzip-only-text/html
BrowserMatch ^Mozilla/4\.0[678] no-gzip
BrowserMatch \bMSIE !no-gzip !gzip-only-text/html
SetEnvIfNoCase Request_URI \.(?:gif|jpe?g|png)$ no-gzip dont-vary
Header append Vary User-Agent env=!dont-vary
</ifmodule>
7、检查配置文件时报错
/usr/local/apache/bin/apachectl -t
Invalid command ‘Order’, perhaps misspelled or defined by a module not includedin the server configuration
原因:是因为 LoadModule authz_host_module modules/mod_authz_host.so
这个模块没有加载
8、编译安装 mod_headers.c
/usr/local/apache/bin/apxs
-i -a -c /usr/local/soft/httpd-2.2.26/modules/metadata/mod_headers.c
9、重新启动 apache
[root@linuxidc ~]# /usr/local/apache/bin/apachectl -t
Syntax OK
/usr/local/apache/bin/apachectl graceful
10、测试压缩与缓存,如下图,压缩率为 3 倍,缓存时间为一年
LAMP 编译安装
一、服务器环境
[root@linuxidc ~]# cat /etc/RedHat-release
Red Hat Enterprise Linux Server release 5.8 (Tikanga)
[root@linuxidc ~]# uname -a
Linux linuxidc 2.6.18-308.el5 #1 SMP Fri Jan 27 17:21:15 EST 2012 i686 i686 i386 GNU/Linux
二、基础环境安装
yum install gcc gcc-c++ bison autoconf automake zlib-devel ncurses-devel libjpeg-devel libpng-devel libtiff-devel freetype-devel pam-devel openssl-devel libxml2-devel
三、APACHE 安装
1、下载并解压
wget http://mirrors.cnnic.cn/apache/httpd/httpd-2.2.26.tar.gz
tar xzvf httpd-2.2.26.tar.gz
cd httpd-2.2.26
2、编译安装
./configure \
-prefix=/data/apache \
-enable-module=so \
-enable-deflate=shared \
-enable-rewrite=shared \
-enable-cache \
-enable-file-cache \
-with-mpm=worker \
-enable-threads \
Make && make install
相对来说,prefork 方式速度要稍高于 worker,然而它需要的 cpu 和 memory 资源也稍多于 woker。
3、启动 apache 服务
./apachectl start
启动报错:httpd: Could not reliably determine the server’s fully qualified domain name,
using 127.0.0.1 for ServerName
4、修改配置文件
vi httpd.conf
#ServerName www.example.com:80
ServerName localhost:80
5、重新启动 apache 服务
[root@hrd bin]# ./apachectl start
[root@hrd bin]# ps -ef|grep httpd
root 5189 1 0 16:04 ? 00:00:00 /data/apache/bin/httpd -k start
daemon 5190 5189 0 16:04 ? 00:00:00 /data/apache/bin/httpd -k start
daemon 5191 5189 0 16:04 ? 00:00:00 /data/apache/bin/httpd -k start
daemon 5193 5189 0 16:04 ? 00:00:00 /data/apache/bin/httpd -k start
daemon 5195 5189 0 16:04 ? 00:00:00 /data/apache/bin/httpd -k start
root 5276 14464 0 16:04 pts/1 00:00:00 grep httpd
如上表示启动成功。
6、配置虚拟站点
a. 开启虚拟站点功能。取消 Incldue 前的注释 #
[root@hrd conf]# grep vhost httpd.conf
Include conf/extra/httpd-vhosts.conf
b. 配置虚拟站点配置文件
cd /data/apache/conf/extra
<VirtualHost *:80> 端口为 80
ServerAdmin webmaster@dummy-host.example.com 管理员邮箱
DocumentRoot “/home/www/wwwroot” 站点目录
ServerName linuxidc.com 站点域名
ServerAlias www.linuxidc.com 站点别名
ErrorLog “logs/linuxidc-error_log” 站点错误日志
CustomLog “logs/linuxidc-access_log” common 站点日志
</VirtualHost>
C. 创建网站目录和首页文件
Mkdir www
Echo www >index.html
7、重启 apache 服务,并检查授权文件
[root@hrd bin]# ./apachectl graceful
[root@hrd bin]# vi httpd.conf
<Directory /home/www/wwwroot> 网站目录
Options FollowSymLinks
AllowOverride None 浏览目录
Order allow,deny 允许访问
Allow from all
</Directory>
8、域名访问显示正常
四、apache 优化
1、启用网站缓存功能
如果已经编译完成,没有编译 mod_expires 参数,手工添加
/usr/local/apache/bin/apxs
-i -a -c /usr/local/soft/httpd-2.2.26/modules/metadata/mod_expires.c
chmod 755 /usr/local/apache/modules/mod_expires.so
2、检查是否安装成功
[root@linuxidc conf]# grep mod_expires.so httpd.conf
LoadModule expires_module modules/mod_expires.so
3、添加缓存文件类型到配置文件,缓存时间设置为 1 年
<IfModule mod_expires.c>
ExpiresActive On 激活缓存功能
ExpiresDefault “access plus 12 month”
ExpiresByType text/html “access plus 12 months” 文本
ExpiresByType text/css “access plus 12 months” 样式
ExpiresByType image/gif “access plus 12 months” 动态
ExpiresByType image/jpeg “access plus 12 months” 图片
ExpiresByType image/jpg “access plus 12 months” 图片
ExpiresByType image/png “access plus 12 months” 图片
EXpiresByType application/x-shockwave-flash “access plus 12 months”
EXpiresByType application/x-Javascript “access plus 12 months”
ExpiresByType video/x-flv “access plus 12 months”
</IfModule>
推荐阅读 :
Ubuntu 13.04 安装 LAMP\Vsftpd\Webmin\phpMyAdmin 服务及设置 http://www.linuxidc.com/Linux/2013-06/86250.htm
CentOS 5.9 下编译安装 LAMP(Apache 2.2.44+MySQL 5.6.10+PHP 5.4.12) http://www.linuxidc.com/Linux/2013-03/80333p3.htm
RedHat 5.4 下 Web 服务器架构之源码构建 LAMP 环境及应用 PHPWind http://www.linuxidc.com/Linux/2012-10/72484p2.htm
LAMP 源码环境搭建 WEB 服务器 Linux+Apache+MySQL+PHP http://www.linuxidc.com/Linux/2013-05/84882.htm
五、MySQL 安装与优化
1、MYSQL 下载地址 http://mirrors.sohu.com/mysql/
2、下载源码包 wget http://mirrors.sohu.com/mysql/MySQL-5.5/mysql-5.5.34.tar.gz
3、MYSQL5.5X 以上版本均采用 CMAKE 安装方式,需要先安装 CMAKE 工具
#wget http://www.cmake.org/files/v2.8/cmake-2.8.12.1.tar.gz
# tar zxvf cmake-2.8.12.1.tar.gz
# cd cmake-2.8.12.1
# ./configure
# make
# make install
3、解压源码包并进入目录
tar xzvf mysql-5.5.33-linux2.6-x86_64.tar.gz
cd mysql-5.5.33-linux2.6-x86_64
4、确认编译环境是否具备
yum -y install gcc* gcc-c++* autoconf* automake* zlib* libxml* ncurses-devel* libgcrypt* libtool*
5、创建 mysql 安装目录及数据目录
安装目录 mkdir /usr/local/mysql
数据存储 mkdir /usr/local/mysql/data
6、创建用户和用户组与赋予数据存放目录权限
groupadd mysql
useradd -g mysql mysql
chown mysql.mysql -R /usr/local/mysql
7、进行编译安装,配置编译参数
cmake -DCMAKE_INSTALL_PREFIX=/usr/local/mysql \
-DMYSQL_DATADIR=/usr/local/mysql/data \
-DMYSQL_TCP_PORT=3306 \
-DMYSQL_UNIX_ADDR=/usr/local/mysql/data/mysqld.sock \
-DMYSQL_USER=mysql \
-DDEFAULT_CHARSET=utf8 \
-DDEFAULT_COLLATION=utf8_general_ci \
-DEXTRA_CHARSETS=all \
-DWITH_READLINE=1 \
-DWITH_EMBEDDED_SERVER=1 \
-DENABLED_LOCAL_INFILE=1 \
-DWITH_INNOBASE_STORAGE_ENGINE=1
make && make install
8、初始化数据库
/usr/local/mysql/scripts/mysql_install_db \
–defaults-file=/etc/my.cnf \
–basedir=/usr/local/mysql \
–datadir=/usr/local/mysql/data \
–user=mysql
9、复制配置文件到 /etc 目录下并初始化数据库
cp /data/mysql/support-files/my-medium.cnf /etc/my.cnf
10、配置启动脚本
cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysql
11、赋权并修改 MYSQL 启动位置
chmod +x /etc/init.d/mysql
cp /usr/local/mysql/bin/mysql /usr/bin/
12、启动数据库并配置数据库密码
service mysql start
/usr/local/mysql/bin/mysqladmin -u root password ‘123456’
[root@hrd ~]# mysql -u root -p
Enter password:
mysql>
或者修改密码
UPDATE user SET password=PASSWORD(“new password”) WHERE user=’root’;
13、授权用户本地与远程访问数据库的权限
grant all privileges on *.* to root@’%’ identified by ‘hrdtech2013’;
flush privileges;
14、my.cnf 优化
[client]
#password = your_password
port = 3306
socket = /usr/local/mysql/data/mysqld.sock
default-character-set = utf8
# The MySQL server
[mysqld]
port = 3306
socket = /usr/local/mysql/data/mysqld.sock
character-set-server=utf8
log-error = /usr/local/mysql/data
pid-file = /usr/local/mysql/data/hrd.pid
skip-external-locking
key_buffer_size = 256M
max_allowed_packet = 4M
table_open_cache = 1024
sort_buffer_size = 2M
net_buffer_length = 8K
read_buffer_size = 1M
tmp_table_size = 16M
read_rnd_buffer_size = 8M
myisam_sort_buffer_size = 8M
back_log = 200
skip-name-resolve
max_connections = 1000
wait_timeout = 120
thread_concurrency = 8
long_query_time = 2
slow-query_log
slow-query_log_file = /usr/local/mysql/data/slow.log
lower_case_table_names = 1
15、mysql 字符集优化
SHOW VARIABLES LIKE ‘CHARACTER%’; 查看字符环境
六、PHP 安装与配置
1、安装 PHP 需要的支持文件,检查编译环境
[root@fang soft]# rrpm -qa zlib-devel libxm12-devel libjpeg-devel
freetype-devel
libjpeg-devel-6b-37
zlib-devel-1.2.3-4.el5
zlib-devel-1.2.3-4.el5
freetype-devel-2.2.1-28.el5_7.2
libjpeg-devel-6b-37
freetype-devel-2.2.1-28.el5_7.2
2、下载并安装 libconv
wget http://ftp.gnu.org/gnu/libiconv/libiconv-1.14.tar.gz
tar xzvf libiconv-1.14.tar.gz
cd libiconv-1.14
./configure
make && make install
3、安装并编译 PHP
wget http://cn2.php.net/get/php-5.4.23.tar.gz/from/this/mirror
tar xzvf php-5.4.23.tar.gz
./configure \
–prefix=/usr/local/php \
–with-MySQL=/usr/local/mysql \
–with-apxs2=/usr/local/apache/bin/apxs \
–with-jpeg-dir \
–with-freetype-dir \
–with-libXML-dir \
–with-png-dir \
–with-zlib \
–enable-pdo \
–with-pdo-mysql \
–with-mysql
Make && make install
4、增加 apache 支持 PHP 配置文件
在 /usr/local/apahce/conf/httpd.conf 中 173 行添加首页支持类型
DirectoryIndex index.html index.shtml index.cgi index.php index.phtm
在 httpd.conf 结尾增加如下内容支持 PHP
AddType application/x-httpd-php .php .phtml
AddType application/x-httpd-php-source .phps
AddType application/x-httpd-php .php
5、复制配置文件到 PHP 目录下
/usr/local/soft/php-5.4.23/cp php.ini-production /usr/local/php/lib/php.ini
6、修改默认用户,在配置文件 72 和 73 行
cd /usr/local/apache/conf/
ls
vi httpd.conf
useradd ett -M -s /sbin/nologin
grep ett /etc/passwd
7、创建 php 测试文件,测试 php 正常访问
[root@fang www]# cat index.php
<?php
phpinfo();
?>
8、创建 PHP 连接 MYSQL 测试文件
cd www
vi testmysql.php
<?php
/*
#this scripts is created by fang
*/
//$link_id=mysql_connect(‘ 主机名 ’,’ 用户 ’,’ 密码 ’);
$link_id=mysql_connect(‘localhost’,’root’,’123456′) or mysql_error();
//$link_id=mysql_connect(‘localhost’,’test’,”);
if($link_id){
echo “mysql successful by oldboy !”;
}else{
echo mysql_error();
}
?>
9、打开浏览器 http:192.168.1.200/testmysql.php,返回 mysql successful by oldboy !
表示 Php 连接 mysql 成功
七、PHP 扩展
1、memcahe 缓存扩展
memcache 的工作就是在专门的机器的内存里维护一张巨大的 hash 表,来存储经常被读写的一些数组与文件,从而极大的提高网站的运行效率,减轻后端数据库的读写压力。
2、下载并安装
wget http://pecl.php.net/get/memcache-2.2.6.tgz
tar zxvf memcache-2.2.6.tgz
cd memcache-2.2.6
3、检查 PHP 是否支持
[root@fang memcache-2.2.6]# /usr/local/php/bin/phpize
Configuring for:
PHP Api Version: 20100412
Zend Module Api No: 20100525
Zend Extension Api No: 220100525
4、进行编译安装
[root@fang memcache-2.2.6]#
./configure –with-php-config=/usr/local/php/bin/php-config –enable-memcache
Make && make install
安装时报 /usr/local/soft/memcache-2.2.6/memcache.c:2232: 错误:提供给函数‘zend_list_insert’的实参太少
打开 memcache.c 文件,
将所有的:zend_list_insert(pool, le_memcache_pool);
改为:zend_list_insert(pool, le_memcache_pool TSRMLS_CC);
保存,退出继续编译,成功搞定。
Installing shared extensions: /usr/local/php/lib/php/extensions/no-debug-zts-20100525/
5、安装测试 make test
6、在 php.ini 中添加 memcahe 扩展
将 729 行扩展目录地址修改如下:
extension_dir = “/usr/local/php/lib/php/extensions/no-debug-zts-20100525/”
在尾行添加扩展
extension = “memcache.so”
7、重启 apache,然后再访问 phpinfo.php 就看到支持 memcahe 了