|
|
* {; I) X% u, D, x. t
, x8 M1 |3 A. l5 `
LAMP 一键安装脚本持续更新很长一段时间了。在这期间,经常被问到很多问题,回答的比较零散,因此有必要在这里归纳总结一下。
f% U/ g: S# R 如果你在使用 LAMP 的过程中也遇到了问题,请参考此文,已经列出了常见的问题和解答,希望能对你有所帮助。
3 f; y; D8 p! m. h: Y9 \ 为什么选择 LAMP 一键安装脚本?
" Q5 h7 b$ v. |/ K4 V; @2 y, m LAMP 是经典的建站环境,尤其适用于个人站长。4 S8 @# `4 F/ o# O
本脚本的软件版本更新及时,支持 PHP 及数据库自选安装。支持 PHP 和数据库程序自助升级。) o( a2 T( _9 e, L" ~
安装方便,支持众多 PHP 插件,实际上是当初为安装 Moodle 而量身打造的 LAMP 环境。
) z5 U9 Y% x5 ?4 S$ Q$ K 安装建议:根据自己的 CMS 建站系统要求,选择合适的版本安装即可。
& p7 o k' h, P$ a2 _: ~ 更新时间:2015 年 08 月 28 日- n! R6 r" a0 T# u K
2 h$ \% w; S. o; m. _ 程序目录:6 H9 {4 C W) Y
MySQL 安装目录: /usr/local/mysql
8 O/ E; q0 z$ U/ V% h MySQL 数据库目录: /usr/local/mysql/data(默认,安装时可更改路径,参考问题 8 如何更改)( a. O5 V4 z7 Q) |
MariaDB 安装目录: /usr/local/mariadb% A# v' ^" q( z7 `: k5 p4 O7 l
MariaDB 数据库目录: /usr/local/mariadb/data(默认,安装时可更改路径,参考问题 8 如何更改)
* Y' t# U: v3 `+ L/ h& t4 n PHP 安装目录: /usr/local/php' f* }0 f9 N) {3 b! ]
Apache 安装目录: /usr/local/apache4 \- e8 h4 j' O7 Y8 D5 H3 d
phpMyAdmin 安装目录: /data/www/default/phpmyadmin(安装完成后出于安全,建议将此目录改名,比如改为 /data/www/default/admin_8989) J' r- _/ W" Y1 w) e/ R
网站目录:
- W/ s1 q) X M! @ 默认的网站根目录: /data/www/default
7 q) N' y- K2 I+ k& c2 P0 { 默认页位置: /data/www/default/index.html
4 U% f: O+ b; H1 ~ k 新建站点默认目录: /data/www/域名/web
7 D2 H V- d! ^- ]8 ]% g2 f& Z phpmyadmin 后台地址: http://域名或ip/phpmyadmin/(若目录已改名,此处应为改名后的地址,比如 http://域名或ip/admin_8989/): o: V" w5 y7 r. c2 i2 |
phpmyadmin 默认用户名:root 密码:root(此密码即 MySQL 的 root 密码。在安装时会要求输入,如不输入则为默认值)1 b0 J" p# S. t! I! N
xcache 后台地址: http://域名或ip/xcache/
! C4 h$ i. ?) |4 O( D5 J xcache 默认用户名:admin 密码:123456(用户名和密码在配置文件 /usr/local/php/php.d/xcache.ini 中定义)
4 Q" [; z2 T! E; r( c" O 配置文件:
& ~( Y8 O6 j! q$ ] Apache 日志目录: /usr/local/apache/logs9 C- ]& ]/ V' y4 w/ Y( J. g" s
Apache SSL 配置文件: /usr/local/apache/conf/extra/httpd-ssl.conf5 Z3 o8 z" [: E
新建站点配置文件: /usr/local/apache/conf/vhost/域名.conf0 @# w0 q, f& W6 _1 y
PHP 配置文件: /usr/local/php/etc/php.ini# }( N; _7 t7 {) o
PHP 所有扩展配置文件目录: /usr/local/php/php.d/9 _ f/ s1 d" m: E! s
MySQL 配置文件: /etc/my.cnf
% V' i/ E. @4 G% G 命令一览:8 m. [/ Y0 f& B E6 e# U0 Z }# G7 l
MySQL 或 MariaDB 命令:5 c9 Z+ W% p8 k, [, _. c6 |
/etc/init.d/mysqld (start|stop|restart|status)
- a& R8 C6 m- r, W Apache命令:
5 x- }1 C. N C# _. }# d9 z. {. N /etc/init.d/httpd (start|stop|restart|status)/ H' v3 T8 Y! j% j
memcached
$ ^9 d" q; ]# o c2 ?7 J /etc/init.d/memcached (start|stop|restart|status)
, v8 l3 k( `' H1 c 安装LAMP及建站简单流程:
7 H; l: i# u* k+ F8 L ^3 M 1、安装 LAMP 环境: G6 t: @& H( ]- d1 y. Q q1 I
2、添加虚拟主机。运行命令:lamp add (如果只建一个站,则可以直接将网站程序上传至 /data/www/default 目录下即可)
9 Y1 C/ V/ ]7 A/ z1 X, Q 3、上传并解压网站程序到网站目录,默认位置为:/data/www/域名/web% o0 w" w/ E! D' F6 X
4、更改网站目录权限。以 root 用户登录,运行:chown -R apache:apache /data/www/域名
: r: n4 A. e3 l/ k9 x3 ]% R 5、运行网站安装程序完成网站安装
3 C5 x9 [& L6 T4 | 问1:安装完网站程序,升级或安装插件等报错,如何更改网站目录权限?3 Q8 w2 j2 P0 o0 i0 i
答:以 root 登录后,运行:chown -R apache:apache /data/www/域名) _. M$ b Z+ L0 M
问2:安装时因内存不足报错,不能完成安装?8 }# D% r7 W0 w2 t
答:小于 512M 的 VPS 建议并开启 Swap,如何开启 Swap ,可以参考《如何在CentOS中添加Swap》一文。
1 H3 @; Y. I* t, F8 B更新(2015 年 08 月 28 日):本次更新优化了在小内存(480-512MB)下的安装体验。当 RAM + Swap 的容量小于 480MB 时,直接退出脚本运行;480-600MB 时,新增 PHP 编译选项 –disable-fileinfo 。/ @% Q, I4 u. b& q
同时还优化了安装过程中对内存的占用。$ z* M2 m9 g' K' L# \; U) C
备注:为什么写成 480 MB ?
8 p0 F1 \# e F( U: T( c+ L7 {3 q& H6 x. G) z这是因为基于 Xen 或者 KVM 虚拟的 VPS,内存容量一般会低于标注容量。一般说是 512MB,但实际也就只有 480MB 左右。
2 g1 l: ?# O7 e9 o q, R4 _6 o 问3:域名跟 ip 地址都显示相同的网页,如何设置?+ s" q- b/ p) F9 V/ Y9 j9 ^
答:这是因为域名没与 IP 绑定。& U5 t4 N9 W5 {' F3 Y) \
修改配置文件 /usr/local/apache/conf/extra/httpd-vhosts.conf
2 a7 R4 E2 C+ S3 K% Z! g" ] 在此文件的第 1 行开始,追加以下虚拟主机的配置:$ n! f6 U; |' }" P& E L6 I9 t
<virtualhost *:80>ServerName 公网 IPRedirect 301 / 完整网址(如:http://teddysun.com)</virtualhost> 注意,格式是301+空格+斜杠+空格+完整网址
( J/ K# ~* w1 [9 G8 I 此处是用到了 301 永久重定向来达到目的。
8 {2 t; z0 t. Z* M3 A- h, H 然后保存并重启 Apache,命令:/etc/init.d/httpd restart+ C. x: I1 J, E' Q! g1 M$ h
问4:将 MySQL 换成 MariaDB ,应该怎么做?$ L0 ^0 i, j+ B% ]- B
答:
/ ?4 \1 X( G7 c- Z 1、备份所有数据库,执行命令:/usr/local/mysql/bin/mysqldump -uroot -p你设定的root密码 –all-databases > /root/mysql.dump$ [' g4 }6 ]' h7 n+ y
2、卸载 LAMP,命令:lamp uninstall
" g; N2 D3 I; q9 R8 Y 3、重新安装 LAMP,选择 MariaDB
. r% F$ L( p( ^& Y 4、安装完成后,恢复数据库,命令:/usr/local/mariadb/bin/mysql -u root -p你设定的root密码 < /root/mysql.dump
$ \( s( E3 a x$ V 卸载 LAMP 时,是不会删除 /data/www/default 的,也就是说不会删除网站数据。但数据库会被删掉,因此需要备份。
6 U* d3 ?, w6 X- K- ]$ q) u& `$ c 注意,考虑到程序兼容性问题,不建议这么做(生产环境换数据库程序不妥,应该事先就规划好用哪种数据库),除非你知道如何备份和恢复你的数据库。
8 J4 |+ [. d- ~/ R4 u- K7 ~; B7 x0 r 问5:如何更改网站的默认目录?+ H v" H `/ o
答:修改配置文件 /etc/httpd/conf/extra/httpd-vhosts.conf 里的 DocmentRoot 目录以及下面的 Directory ,再重启 apache 即可: T" [6 ?, G/ A/ a$ W
问6:全新安装后,无法引用 /data/www/ 之外的目录,如 /home/data/,如何解决?; C# J, v; V4 t8 O
答:这是因为出于安全考虑,做了目录权限的 open_basedir 限制。
- P5 l9 @. Z: c9 W 如何添加比如 /home/data 目录呢?修改 /usr/local/apache/conf/extra/httpd-vhosts.conf 中的 php_admin_value open_basedir 后的值,将 /home/data 添加到最后,注意要用冒号分割。再重启 Apache 即可。/ r$ |- R8 |, Z \$ w
问7:请问如果网站是www.ccc.com, 如何让ccc.com跳转到www.ccc.com?* |; B; V/ `& i* F) x
答:既可以在域名解析的时候设置域名跳转(比如 Dnspod 就可以),也可以通过 Apache 的 ServerAlias 设置多个域名。0 ?) @9 _' }* K) R' J! `7 @
比如 www.ccc.com 的配置文件是 /usr/local/apache/conf/vhost/www.ccc.com.conf ,在 ServerName 后新增一行 ServerAlias ccc.com 即可。% G8 ^& b: l% [' Y
修改示例:1 o8 h0 J* J) E# S2 S
ServerName www.ccc.com k: S% F2 Q1 z: O8 W
ServerAlias ccc.com
0 h7 P# S% V, H) |: p 问8:安装时自定义 MySQL 或 MariaDB 的路径,系统自动初始化数据库时会出错。然后会提示启动失败?0 V+ S) T; ~+ f& H9 X% B0 X
答:自定义 MySQL 的数据库路径时,如果目录不存在的话 MySQL 或 MariaDB 会尝试创建该目录,但一般会由于权限不足而创建失败。7 H& V N- A$ D
MySQL 编译安装后会将 /usr/local/mysql 目录的 user:group 设为 mysql:mysql,所以默认目录 /usr/local/mysql/data 是没有问题的。
% a. P' E8 p6 Z3 q 因此自定义路径时,最好事先创建好该目录,并把目录 user:group 变更为 mysql:mysql,比如更改目录为 /home/mysql/data
3 I( y3 Q) X4 ?) V1 F 当然,在还没有安装 LAMP 之前,系统不一定有 mysql 的用户和用户组。执行以下命令可以创建:' q! x# C) k3 U
/usr/sbin/groupadd mysql/usr/sbin/useradd -s /sbin/nologin -M -g mysql mysql 然后,在 root 用户下执行:chown -R mysql:mysql /home/mysql/data: G& `1 H- F( s) V/ m- y1 _
更新(2015 年 08 月 28 日):本次更新优化了 MySQL 的安装过程,脚本会检测自定义路径是否存在,如果不存在会自行创建目录并改变其 owner 和 group,无需在此之前手动创建了。( {! x+ y2 P0 t$ l. x
问9:LAMP 能配合什么 Web 面板管理呢?
r+ [6 H& D/ | 答:Webmin 免费面板。参考《使用webmin管理PPTP VPN Server》一文,有在 CentOS 下如何快速安装 webmin 的教程。- e2 p- f4 g* g9 y# K7 D
问10:请问 xcache 的后台怎么进去?# {% L1 D& n6 m, q# e. i
答:http://域名或IP/xcache/# o9 P- v$ @* @
用户名:admin- i* H, W- k0 T: F
密码:123456; A5 u2 a) E4 [4 T/ X! D
前提是你安装了 xcache 后才能进入该后台。
% w1 f% c8 `, D! R5 | 问11:如何修改 xcache 的后台用户名和密码?
* d1 m v. G7 V, w5 w 答:修改 /usr/local/php/php.d/xcache.ini 中对应的 xcache.admin.user 和 xcache.admin.pass 的值。* ?3 S6 R8 d4 d. Y7 m' P( o
注意 xcache.admin.pass 的值是密码 md5 后的值。
; i$ R! H- y; t1 U 然后重启 Apache 即可。% N8 M _5 s+ K, r/ C9 z2 B
问12:程序只能支持到PHP 5.3,不支持PHP 5.4,请问具体如何降级到PHP 5.3呢?是否可以直接卸载 PHP 然后单独重新安装PHP 5.3 ?. _, H; m" B0 d+ ~+ F! U
答:可以是可以,不过比较麻烦,你要自己重新编译 PHP 5.3.29 。
8 @, K) r. I% @3 t, @ 删除已有的 PHP 步骤:
! k1 ~$ Q$ R) w rm -rf /etc/php.ini /usr/bin/php* /usr/local/php2 X( s5 g' f5 Z" o6 W. ~7 K8 U! T
编译 PHP 5.3.29 有几点需要注意的。你需要把环境里的 Apache, MySQL 或 MariaDB 配置一并 configure 好才行,具体可以参照 lamp.sh 脚本里的 install_php 函数。6 t" S; R! m; h: v4 k
当然还有一种办法就是备份好数据,卸载 LAMP 后再次安装时选择 PHP 5.3 版本即可。% [7 `- H- f2 s
问13:安装以后要如何关闭日志功能?
, S7 u0 }( Y, t2 b: |& k 答:修改 Apache 的配置文件 /usr/local/apache/conf/httpd.conf ,& j! f1 Z8 p( @5 y1 h
搜索关键字 CustomLog (第300行),在前面加一个“#”注释掉后再重启 Apache 后就不再产生访问日志了。: i& g8 F; Q( i: M" }$ i9 d6 a
问14:FTP 安装使用是怎样的?
% z* g- {5 C8 q: o4 e2 Q, K 答:1、安装 LAMP 环境;8 Z' m& b+ k0 x5 z
2、运行 pureftpd.sh 安装 pureftpd 软件(pureftpd 相关命令:service pure-ftpd start/stop/restart);; E. h; P; x7 d3 a: L5 W- L
3、运行 lamp ftp add 命令新增 ftp 用户并根据提示绑定该用户的根目录(例:/data/www/default);! l( e' `. Z) |/ d
4、运行 lamp ftp del 命令删除 ftp 用户,但并不会删除数据;
/ o& `: @: K$ t; T 5、运行 lamp ftp list 命令查看已有的 ftp 用户一览。, p* V" ?- z; x" z& [+ C
敬请注意:安装 FTP 会遇到各种权限问题,会和已有的 apache 用户和用户组产生冲突,导致通过 FTP 上传的文件在程序里不可用。+ ~; I: E; R, N. _$ h' Y$ A
因此,不推荐使用。目前 SFTP 已经全面替代 FTP 了。你可以用 winscp 客户端 root 连接后上传文件,然后再改下用户和用户组权限为 apache 即可,简单方便。
) {2 _8 d& T6 n5 i% U% ~9 v0 G8 z 问15:Apache 的 SSL 如何设置?# C4 ]* J7 p: j, u) A% I
答:一般设置 /usr/local/apache/conf/extra/httpd-ssl.conf 就够了。& l1 H% j0 |7 |- I. v( }9 b* w2 a
还需要在 /usr/local/apache/conf/httpd.conf 中开启 Include conf/extra/httpd-ssl.conf ,也就是将前面的 “#” 去掉。
) e4 n$ L- z: t1 f% _5 M1 P 可以参考《Apache下部署ssl教程》一文。8 S0 ^2 B- m' f8 v
问16:安装 PHP 时出现以下错误,怎么处理?
% @; P& l! d1 G* A% q) \' t& ~ cc: Internal error: Killed (program cc1)0 [0 D# }8 U4 [4 N7 c& _
Please submit a full bug report.
: z. ~9 g8 Y3 Z- C1 _+ U0 r9 e% m See for instructions.4 U, o2 u) h5 ?% [" w
make: *** [ext/fileinfo/libmagic/apprentice.lo] Error 13 n; r; T5 M$ _5 t% H4 b5 U
Installing PHP failed, Please visit https://teddysun.com/lamp and contact./ m/ Z$ |5 U$ ~
答:内存不足,安装被 kill了。内存低于 512MB 的又没有 Swap 的话就会如此。如何开启 Swap ,可以参考《如何在CentOS中添加Swap》一文。- I! L2 a9 q( l, g d: M
更多错误信息查询,参考《PHP编译安装常见错误总结》一文。0 R, p: K& l! j6 z: S
问17:请问如何卸载组件呢,比如 xcache memcached?1 K2 g( z/ C. E# B; h6 Z
答:删掉对应的 .so 文件及配置文件再重启 Apache 即可。4 B3 k# M# P' _6 c& r" b$ h
比如安装了 PHP 5.4 的话:
# s4 B9 o2 m6 B: v$ b /usr/local/php/lib/php/extensions/no-debug-non-zts-20100525/xcache.so
% }: l* G. N x* Q /usr/local/php/php.d/xcache.ini% V$ G, ]3 v; O0 q" ]
问18:怎么卸载 phpMyAdmin?
+ F# g# `# Q+ p7 O, ^; U 答:phpMyAdmin 如果不需要的话,直接删除其目录就OK了。) K. E9 v2 U, ^1 e1 Z" j
默认安装位置是 /data/www/default/phpmyadmin/
5 D' p2 X0 A/ S7 G8 `, Z 问19:多个IP的VPS如何设置一个IP对应一个域名呢?
! p1 @# u4 _9 a 答:按照以下步骤:& R7 {# w$ f" ], I% y: U1 [+ l
1、创建虚拟主机,以域名命名;
' i- k7 }9 ? X: v: p 2、修改配置文件/usr/local/apache/conf/vhost/域名.conf,将其中的第一行的 virtualhost *:80修改为 virtualhost IP:80;
# i) Q. z9 q8 u5 H1 ^ z- L, o9 I 3、解析对应的域名到第二步设定好的的 IP ,重启 Apache。
% ^2 u2 D9 }/ M# a
( o v m. t/ z |
|