阿里云-云小站(无限量代金券发放中)
【腾讯云】云服务器、云数据库、COS、CDN、短信等热卖云产品特惠抢购

LAMP编译安装与优化

95次阅读
没有评论

共计 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 编译安装与优化

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 了

LAMP 编译安装与优化

正文完
星哥说事-微信公众号
post-qrcode
 
星锅
版权声明:本站原创文章,由 星锅 2022-01-20发表,共计12680字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
【腾讯云】推广者专属福利,新客户无门槛领取总价值高达2860元代金券,每种代金券限量500张,先到先得。
阿里云-最新活动爆款每日限量供应
评论(没有评论)
验证码
【腾讯云】云服务器、云数据库、COS、CDN、短信等云产品特惠热卖中