总览
解锁此技能要求:
Linux
系统安装- 配置使用
ssh
服务、ftp
服务 - 用户和组的操作
- 搭建
LAMP
环境以及常用扩展 - 搭建
LNMP
环境 - 安装
Memcache
+Redis
+MongoDB
+SVN
CentOs 安装
- 下载centos镜像文件
- 刻录光盘或者放到已做成系统盘的U盘里面(如果是虚拟机就直接在dvd处选择镜像目录)
- 开始引导系统安装
- 根据提示选择即可完成安装
组 和 用户
创建一个用于开发的组develop
:
groupadd -g 520 develop // -g 520 : 指定GID为520
在develop
组下创建一个用于开发的用户mayy
:
useradd mayy -g 520
删除组 和 用户
groupdel develop
userdel -r mayy // -r 会同时删除用户的家目录
ssh + ftp 服务
ftp服务:
1、检查vsftpd
服务是否已经安装
[root@localhost ~]# rpm -q vsftpd
package vsftpd is not installed
2、安装vsftpd
yum -y install vsftpd
3、修改配置
[root@localhost ~]# vi /etc/vsftpd/vsftpd.conf
----------------------------------------------
anonymous_enable = NO #修改:禁止匿名用户登录
# chroot_local_user = YES #如果需要禁止ftp用户跳出自己的家目录,需要去掉此行的注释。配置ftp服务器使一般要此配置
4、重启vsftpd
service vsftpd restart
5、把ssh
和vsftpd
服务加入自动启动:
service sshd start
service vsftpd start
6、使用xshell
连接Linux
- 查看Linux的
ip
地址:
[myy@localhost ~]$ ifconfig
...
inet addr:192.168.116.128
- 在要使用xshell连接Linux的电脑终端使用命令
ping
确认ip地址是通的。 - 使用xshell连接
7、使用Xftp
连接Linux,同ssh的连接,但需要注意:ftp
的连接需要使用非root
账户
搭建LAMP环境
LAMP环境搭建所需要的每个软件的软代码文件,都是以tar.gz或.tgz提供给我们的打包压缩文件,所以必须将其解压再解包(
tar–zxvf *.tar.gz
)。源代码包的安装过程分三步:配置(configure
)、编译(make
)、安装(makeinstall
)
1、查看LAMP
所需的环境是否已经安装
[myy@localhost ~]$ rpm -q make gcc gcc-c++ zlib-devel libtool libtool-ltdllibtool-ltdl-devel bison ncurses-devel
make-3.81-23.el6.x86_64
gcc-4.4.7-17.el6.x86_64
gcc-c++-4.4.7-17.el6.x86_64
zlib-devel-1.2.3-29.el6.x86_64
libtool-2.2.6-15.5.el6.x86_64
package libtool-ltdllibtool-ltdl-devel is not installed
bison-2.4.1-5.el6.x86_64
ncurses-devel-5.7-4.20090207.el6.x86_64
2、如果上诉插件有缺失的话,使用yum安装即可
[root@localhost ~]# yum -y install make gcc gcc-c++ zlib-devel libtool libtool-ltdllibtool-ltdl-devel bison ncurses-devel
3、查看httpd
、mysql
、php
是否已经安装
[root@localhost ~]# rpm -q httpd mysql php
httpd-2.2.15-45.el6.centos.x86_64
mysql-5.1.73-5.el6_6.x86_64
package php is not installed
4、卸载掉之前的版本,全部重新获取需要的版本安装
[root@localhost ~]# rpm -e httpd --nodeps
[root@localhost ~]# rpm -e mysql --nodeps
[root@localhost ~]# rpm -q httpd mysql php
package httpd is not installed
package mysql is not installed
package php is not installed
从官网获取对应的AMP的tar包到Linux
[root@localhost ~]# ls
mysql-5.6.12-linux-glibc2.5-x86_64.tar.gz
httpd-2.4.23.tar.gz
php-5.6.24.tar.gz
Apache的安装
1.解压缩
[root@localhost ~]# tar -zxvf httpd-2.4.23.tar.gz
2、进到解压后的目录,进行配置安装路径和安装形式
[root@localhost ~]# cd httpd-2.4.23
[root@localhost httpd-2.4.23]# ./configure --prefix=/usr/local/apache --enable-so
此时出现如下报错信息:
configure:
checking for APR... no
configure: error: APR not found. Please read the documentation.
解决:
wget http://archive.apache.org/dist/apr/apr-1.4.5.tar.gz
tar -zxf apr-1.4.5.tar.gz
cd apr-1.4.5
./configure --prefix=/use/local/apr
make
make install
继续配置Apache,出现如下报错新:
configure:
checking for APR-util... no
configure: error: APR-util not found. Please read the documentation.
继续安装依赖apr-util
和pcre
,方法同apr:
wget http://archive.apache.org/dist/apr/apr-util-1.3.12.tar.gz
tar -zxf apr-util-1.3.12
cd apr-1.4.5
./configure --prefix=/usr/local/apr-util -with-apr=/usr/local/apr/bin/apr-1-config
make
make install
wget http://jaist.dl.sourceforge.net/project/pcre/pcre/8.10/pcre-8.10.zip
unzip -o pcre-8.10.zip
cd pcre-8.10
./configure --prefix=/usr/local/pcre
make && make install
在配置的时候加上指定上面几个依赖的路径:
[root@localhost httpd-2.4.23]# ./configure --prefix=/usr/local/apache --with-apr=/usr/local/apr/ --with-apr-util=/usr/local/apr-util/ --with-pcre=/usr/local/pcre --enable-so
3、编译、安装
[root@localhost httpd-2.4.23] make && make install
4、操作Apache服务
[root@localhost httpd-2.4.23] /usr/local/apache/bin/apacheectl start|stop|restart
5、对Apache
服务的一些处理,便于更快捷地操作
- 创建
Apache
服务的软连接到sbin目录下,这样任何地方都可以操作该服务
ln -s /usr/local/apache/bin/apachectl /sbin/apache
- 在
rc.local
文档里面加上此行,Linux启动时会开启Apache服务
vi /etc/rc.d/rc.local
/usr/local/apache/bin/apachectl start
6、验证结果 在浏览器中输入linux所在的ip地址(前提是没有修改Apache的域名配置),如果ip地址能ping通,但是提示的无法访问网站,则把linux的防火墙关闭后再试
service iptables stop | start #及时生效,重启后失效 ,如果要永久关闭:chkconfig iptables off | on(重启后生效)
浏览器中显示“it works!”表示Apache服务已经正常工作。
MySQL的安装
1、安装必要的软件包
yum -y install gcc gcc-c++ gcc-g77 autoconf automake zlib* fiex* libxml* ncurses-devel libmcrypt* libtool-ltdl-devel* make cmake
2、mysql5.6.12是绿色版,无需编译
[root@localhost ~]# tar -zvxf mysql-5.6.12-linux-glibc2.5-x86_64.tar.gz
[root@localhost ~]# mv mysql-5.6.12-linux-glibc2.5-x86_64.tar.gz /usr/local/mysql
3、创建mysql 用户及用户组
groupadd mysql
useradd -r -g mysql mysql
3、改变mysql文件夹所属组
chown -R mysql:mysql mysql
4、初始化数据库
/usr/local/mysql/scripts/mysql_install_db --user=mysql --basedir=/usr/local/mysql/ --datadir=/usr/local/mysql/data/
5、数据库配置文件处理
cp /usr/local/mysql/support-files/my-default.cnf /etc/my.cnf
cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysql
vi /etc/init.d/mysql
#修改文件中的两个变更值
basedir=/Data/apps/mysql
datadir=/Data/data/mysql/data
6、添加环境变量并添加自启动服务
vi /etc/profile
#最后一行添加以下两行:
export MYSQL_HOME="/usr/local/mysql"
export PATH="$PATH:$MYSQL_HOME/bin"
#保存退出
source /etc/profile #使修改立即生效
chkconfig --add mysql
chkconfig mysql on
7、启动mysql
service mysql start
#会提示:Starting MySQL..
#查看mysql服务:
ps aux|grep mysql
8、登录mysql及改密码与配置远程访问
#修改root用户密码
/usr/local/mysql/bin/mysqladmin -u root password 'your_password'
#登录mysql,需要输入密码
/usr/local/mysql/bin/mysql -u root -p
#允许root用户远程访问
mysql>GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'your_password' WITH GRANT OPTION;
mysql>FLUSH PRIVILEGES;#刷新权限
mysql>exit
找回密码
/usr/local/mysql/bin/bin/mysqld_safe --basedir=/Data/apps/mysql --datadir=/usr/local/mysql/data --skip-grant-tables &
/usr/local/mysql/bin/mysql -u root mysql
UPDATE user SET password=PASSWORD("new_password") WHERE user='root';
FLUSH PRIVILEGES;
PHP的安装
1、顺序安装依赖:
创建目录放置依赖包:mkdir -p /usr/local/libs
jpeg
依赖
wget http://www.ijg.org/files/jpegsrc.v9.tar.gz
tar -zxvf jpegsrc.v9.tar.gz
cd jpeg-9/
./configure --prefix=/usr/local/libs --enable-shared --enable-static
make && make install
libpng
依赖
wget http://prdownloads.sourceforge.net/libpng/libpng-1.6.2.tar.gz
tar zxvf libpng-1.6.2.tar.gz
cd libpng-1.6.2/
./configure --prefix=/usr/local/libs/
make && make install
freetype
依赖
wget http://download.savannah.gnu.org/releases/freetype/freetype-2.4.12.tar.gz
tar zxvf freetype-2.4.12.tar.gz
cd freetype-2.4.12/
./configure --prefix=/usr/local/libs/
make && make install
libmcrypt
依赖
wget http://downloads.sourceforge.net/mcrypt/libmcrypt-2.5.8.tar.gz
tar zxvf libmcrypt-2.5.8.tar.gz
cd libmcrypt-2.5.8/
./configure --prefix=/usr/local/libs
make && make install
cd libltdl/
./configure --prefix=/Data/apps/libs --enable-ltdl-install
make && make install
mhash
依赖
wget http://downloads.sourceforge.net/mhash/mhash-0.9.9.9.tar.gz
tar zxvf mhash-0.9.9.9.tar.gz
cd mhash-0.9.9.9/
./configure --prefix=/usr/local/libs
make && make install
libiconv
依赖
wget http://ftp.gnu.org/pub/gnu/libiconv/libiconv-1.14.tar.gz
tar -zxvf libiconv-1.14.tar.gz
cd libiconv-1.14
./configure --prefix=/usr/local/libs
make && make install
#解决./stdio.h:1010:1: 错误:‘gets’未声明(不在函数内) 的问题
cd srclib/
sed -i -e '/gets is a security/d' ./stdio.in.h
cd ../
make && make install
- 添加:编译时使用的动态链接库的路径
vi /etc/ld.so.conf
#添加一行
/Data/apps/libs/lib
#生效
ldconfig
mcrypt
依赖
wget http://downloads.sourceforge.net/mcrypt/mcrypt-2.6.8.tar.gz
tar zxvf mcrypt-2.6.8.tar.gz
cd mcrypt-2.6.8/
export LDFLAGS="-L/usr/local/libs/lib -L/usr/lib"
export CFLAGS="-I/usr/local/libs/include -I/usr/include"
touch malloc.h
./configure --prefix=/usr/local/libs --with-libmcrypt-prefix=/usr/local/libs
make && make install
2、解压PHP5.6 tar包:
[root@localhost ~]# tar -zxvf php-5.6.24.tar.gz
3、配置:
./configure --prefix=/usr/local/php --with-config-file-path=/usr/local/php/etc --with-mysql=/usr/local/mysql --with-mysqli=/usr/local/mysql/bin/mysql_config --with-iconv=/usr/local/libs/ --with-freetype-dir=/usr/local/libs --with-jpeg-dir=/usr/local/libs --with-libmcrypt=/usr/local/libs --with-png-dir=/usr/local/libs --with-zlib --with-libxml-dir=/usr --enable-xml --disable-rpath --enable-bcmath --enable-shmop --enable-sysvsem --enable-inline-optimization --with-curl --enable-mbregex --enable-fpm --enable-mbstring --with-mcrypt=/usr/local/libs --with-gd --enable-gd-native-ttf --with-openssl --with-mhash --enable-pcntl --enable-sockets --with-xmlrpc --enable-zip --with-bz2 --enable-soap --enable-opcache --with-pdo-mysql --enable-maintainer-zts --enable-pcntl --enable-shmop --enable-sysvmsg --enable-sysvsem --enable-sysvshm --without-pear --with-gettext --enable-fpm --enable-opcache=no
4、编译、安装:
[root@localhost php-5.6.24]# make && make install
可能出现错误:
在包含自 /root/php-5.6.24/ext/zip/lib/zip_add.c:37 的文件中:
/root/php-5.6.24/ext/zip/lib/zipint.h:118:2: 错误:#error unsupported size of off_t
make: *** [ext/zip/lib/zip_add.lo] 错误 1
原因是配置时加了--enable-zip
,可以去掉或者安装好zip需要的如下依赖:
--with-zlib-dir=DIR ZIP: Set the path to libz install prefix
--with-pcre-dir ZIP: pcre install prefix
--with-libzip=DIR ZIP: use libzip
可能出现错误:
/root/php-5.6.24/sapi/cli/php: error while loading shared libraries: libmysqlclient.so.18: cannot open shared object file: No such file or directory
make: *** [ext/phar/phar.php] 错误 127
解决:
[root@localhost php-5.6.24]# find / -name "libmysqlclient.so.18"
/usr/local/mysql/lib/libmysqlclient.so.18
[root@localhost php-5.6.24]# ln -s /usr/local/mysql/lib/libmysqlclient.so.18 /usr/lib64/
make时可能出现的错误:
chmod: 无法访问"ext/phar/phar.phar": 没有那个文件或目录
解决:
mkdir ext/phar/phar.phar -p
或者 cp ./phar.php ./phar.phar
php.ini
处理:
cp php.ini-development /usr/local/php/etc/php.ini
cp ./sapi/fpm/php-fpm.conf /Data/apps/php7/etc/php-fpm.conf
httpd.conf
配置
vi /usr/local/apache/conf/httpd.conf
#查看是否有 LoadModule php5_module modules/libphp5.so ,如果没有的话就是php安装出问题了,需要重新安装。
#添加处理php类型文件
AddType application/x-httpd-php .php
验证: 在htdoc
下创建一个php文件试试能不能正常解析。
Redis 安装
1、下载,解压,编译
wget http://download.redis.io/releases/redis-2.8.24.tar.gz
tar -xzf redis-2.8.24.tar.gz
cd redis-2.8.24
make
2、二进制文件是编译完成后在src目录下. 运行reids
服务如下:
src/redis-server
3、可以使用内置客户端进行操作
$ src/redis-cli
redis> set name mayy
OK
redis> get name
"mayy"
4、把redis服务加入随系统启动,以及创建客户端的全局链接
vi /etc/rc.d/rc.local
/usr/local/redis/src/redis-server
ln -s /usr/local/redis/src/redis-cli /sbin/redis
5、安装php-redis
扩展
wget http://pecl.php.net/get/redis-2.2.8.tgz
tar -zxvf redis-2.2.8
cd redis-2.2.8
./configure --with-php-config=/usr/local/php/bin/php-config
make && make install
#结果:
Installing shared extensions: /usr/local/php/lib/php/extensions/no-debug-zts-20131226/
6、到php.ini
里面增加一行配置引入so文件
extension=redis.so
7、使用phpinfo
检查是否成功加载扩展。
可能出现的问题:扩展没有成功加载出来
检查phpinfo
的配置项:Loaded Configuration File
值是否是none
,如果是则需要把php.ini
复制到配置项Configuration File (php.ini) Path
展示的路径。
redis的文件里面的常用配置:
配置项 | 含义 |
---|---|
daemonize | 如果需要在后台运行,把该项改为yes |
pidfile | 配置多个pid的地址 默认在/var/run/redis.pid |
bind | 绑定ip,设置后只接受来自该ip的请求 |
port | 监听端口,默认为6379 |
timeout | 设置客户端连接时的超时时间,单位为秒。logfile:配置log文件的地址。 |
databases | 设置数据库的个数,默认使用的数据库为0 |
Requirepass | 设置登录时需要使用的密码。 |
Maxclients | 限制同时连接的客户数量 |
Maxmemory | 设置redis能够使用的最大内存。 |
Appendonly | 开启append only模式。 |
Appendfsync | 设置对appendonly.aof文件同步的频率。 |
Memcache安装
1、服务端软件安装
#安装libevent-devel
yum install libevent-devel
#安装memcache
wget http://memcached.org/files/memcached-1.4.29.tar.gz
tar -zxvf memcached-1.4.29.tar.gz
cd memcached-1.4.29
./configure --prefix=/usr/local/memcached
make && make install
2、启动memcache
/usr/local/bin/memcached -d -m 200 -u root -l 192.168.116.128 -p 11211 -c 1000 -P /tmp/memcached.pid
选项 | 含义 |
---|---|
-d | 启动一个守护进程, |
-m | 分配给Memcache使用的内存数量,单位是MB,这里是200MB |
-u | 运行Memcache的用户,如果当前为 root 的话,需要使用此参数指定用户。 |
-l | 监听的服务器IP地址 |
-p | 设置Memcache监听的端口,默认11211 |
-c | 最大运行的并发连接数,默认是1024 |
-P | 设置保存Memcache的pid文件,比如: /tmp/memcached.pid |
查看 memcached
服务的进程:
ps aux | grep memcached
停止 memcached
进程 :
kill `cat /tmp/memcached.pid`
3、安装memcache的php扩展
wget http://pecl.php.net/get/memcache-3.0.8.tgz
tar -zxvf memcache-3.0.8.tgz
cd memcache-3.0.8
/usr/local/php/bin/phpize
./configure --with-php-config=/usr/local/php/bin/php-config
make && make install
vi /usr/local/php/lib/php.ini
#增加一行memcache扩展配置
extension=memcache.so
USAGE
<?php
$memcache = new Memcache();
$memcache->connect('192.168.116.128',11211);
$res = $memcache->add('name','mayy', MEMCACHE_COMPRESSED, 3600); #MEMCACHE_COMPRESSED:数据很小的时候不会采用zlib压缩,只有数据达到一定大小才对数据进行zlib压缩
var_dump($res);
$name = $memcache->get('name');
var_dump($name);
MongoDB
MongoDB服务端安装
wget https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-rhel62-3.2.8.tgz
tar -zxvf mongodb-linux-x86_64-rhel62-3.2.8.tgz
cp -Rpv mongodb-linux-x86_64-rhel62-3.2.8 /usr/local/mongodb
cd /usr/local/mongodb
# 为MongoDB创建数据和日志存放目录
mkdir data
mkdir logs
touch logs/mongodb.log
#启动MongoDB,&表示后台运行
/usr/local/mongodb/bin/mongod --dbpath=/usr/local/mongodb/data/ --logpath=/usr/local/mongodb/logs/mongodb.log --logappend&
#可以把命令加入随系统启动
#创建客户端的链接,便于任何地方都可以启用
ln -s /usr/local/mongodb/bin/mongo /sbin/mongo
mongodb 默认运行端口:27017
MongoDB的php扩展
wget http://pecl.php.net/get/mongo-1.6.14.tgz
tar -zxvf mongo-1.6.14.tgz
cd mongo-1.6.14
/usr/local/php/bin/phpize
./configure --with-php-config=/usr/local/php/bin/php-config
make && make install
vi /usr/local/php/lib/php.ini
extension=mongo.so
Sphinx
参考:http://www.cnblogs.com/joshua317/p/5482283.html#3464003
扩展资源:http://pecl.php.net/