1.准备工作
(1) Centos版本 : 6.8 ,通过以下命令查询
# cat /etc/redhat-release
CentOS release 6.8 (Final)
(2)Apche版本 : httpd-2.4.29.tar.gz
(3)PHP版本:php-5.6.29.tar.bz2
(4)Mysql版本:mysql-5.6.35.tar.gz
(5)搭建VSFTPD
2.安装Mysql
(1) yum 安装 gcc-c++
$ yum install gcc-c++ bison ncurses-devel -y
(2)安装 cmake-3.7.1
$ cd /usr/local/src/
$ wget https://cmake.org/files/v3.7/cmake-3.7.1.tar.gz
$ tar zxf cmake-3.7.1.tar.gz
$ cd cmake-3.7.1
$ ./bootstrap
$ gmake && gmake install
$ echo $?
(3)下载mysql
$ cd /usr/local/src/
$ wget https://dev.mysql.com/get/Downloads/MySQL-5.6/mysql-5.6.35.tar.gz
$ tar zxf mysql-5.6.35.tar.gz
(4)配置、编译、安装mysql
cd mysql-5.6.35
$ cmake . \
-DCMAKE_INSTALL_PREFIX=/usr/local/mysql \
-DMYSQL_DATADIR=/data/mysql \
-DSYSCONFDIR=/etc \
-DMYSQL_TCP_PORT=3306 \
-DWITH_MYISAM_STORAGE_ENGINE=1 \
-DWITH_INNOBASE_STORAGE_ENGINE=1 \
-DENABLED_LOCAL_INFILE=1 \
-DWITH_PARTITION_STORAGE_ENGINE=1 \
-DMYSQL_UNIX_ADDR=/tmp/mysql.sock \
-DEXTRA_CHARSETS=all \
-DDEFAULT_CHARSET=utf8 \
-DDEFAULT_COLLATION=utf8_general_ci \
$ make && make install
$ echo $?
(5)创建用户、组、相关目录
$ groupadd mysql
$ useradd -r -g mysql -s /sbin/nologin mysql
$ mkdir -p /data/mysql
$ chown -R mysql.mysql /usr/local/mysql
$ chown -R mysql.mysql /data/mysql
(6)初始化数据库
$ chmod a+x scripts/mysql_install_db
$ ./scripts/mysql_install_db \
--basedir=/usr/local/mysql \
--datadir=/data/mysql \
--user=mysql
(7)拷贝、修改配置文件
$ cp support-files/my-default.cnf /etc/my.cnf
$ vim /etc/my.cnf
basedir = /usr/local/mysql
datadir = /data/mysql
socket = /tmp/mysql.sock
(8)加入系统服务、设为开机启动
$ cp support-files/mysql.server /etc/init.d/mysqld
$ chmod 755 /etc/init.d/mysqld
$ chkconfig --add mysqld
$ chkconfig mysqld on
$ service mysqld start
(9)命令路径加入系统环境变量
$ vim /etc/profile.d/path.sh
#!/bin/bash
export PATH=$PATH:/usr/local/mysql/bin
$ source /etc/profile.d/path.sh
$ service mysqld restart
(10)初始化 root 密码
use mysql
update user set password=PASSWORD(‘123456’) where User='root';
FLUSH PRIVILEGES;
3 安装Apache2
(1)查看Apache是否被安装:
find / -name 'httpd'
(2)安装apr-1.5.2.tar.gz
cd /usr/local/src
wget http://archive.apache.org/dist/apr/apr-1.5.2.tar.gz
tar zxf apr-1.5.2.tar.gz
cd apr-1.5.2
./configure --prefix=/usr/local/apr
make && make install
echo $?
(3)安装apr-util-1.5.4.tar.gz
cd /usr/local/src
wget http://archive.apache.org/dist/apr/apr-util-1.5.4.tar.gz
tar zxf apr-util-1.5.4.tar.gz
cd apr-util-1.5.4
./configure --prefix=/usr/local/apr-util --with-apr=/usr/local/apr
make && make install
echo $?
(4)安装zlib
yum install zlib zlib-devel --setopt=protected_multilib=false pcre pcre-devel openssl openssl-devel -y
(5)安装apache
cd /usr/local/src
wget https://mirrors.tuna.tsinghua.edu.cn/apache/httpd/httpd-2.4.29.tar.gz
tar zxf httpd-2.4.29.tar.gz
cd httpd-2.4.29
./configure \
--prefix=/usr/local/apache2 \
--with-apr=/usr/local/apr \
--with-apr-util=/usr/local/apr-util \
--with-pcre \
--with-z \
--enable-so \
--enable-deflate=shared \
--enable-expires=shared \
--enable-rewrite=shared \
--enable-static-support
make && make install
echo $?
(6)加入系统服务,设为开机启动
$ cp /usr/local/apache2/bin/apachectl /etc/init.d/httpd
$ chmod 755 /etc/init.d/httpd
$ vim /etc/init.d/httpd
# chkconfig: 345 85 15
# description: Apache Web Server
$ chkconfig --add httpd
$ chkconfig httpd on
$ service httpd start
$ netstat -lnp | grep httpd
(7)路径加入系统环境变量、设置ServerName
$ vim /etc/profile.d/path.sh
#!/bin/bash
export PATH=$PATH:/usr/local/mysql/bin*:/usr/local/apache2/bin
source /etc/profile.d/path.sh
$ vim /usr/local/apache2/conf/httpd.conf
ServerName localhost.xxx:80
$ apachectl graceful
4 安装php-5.6
(1)安装依赖
yum install -y libjpeg libjpeg-devel libpng libpng-devel freetype freetype-devel libxml2 libxml2-devel glibc glibc-devel glib2 glib2-devel ncurses ncurses-devel libcurl libcurl-devel openssl openssl-devel
(2)下载安装
cd /usr/local/src
wget http://ncu.dl.sourceforge.net/project/mcrypt/Libmcrypt/2.5.8/libmcrypt-2.5.8.tar.gz
wget https://jaist.dl.sourceforge.net/project/mcrypt/Libmcrypt/2.5.8/libmcrypt-2.5.8.tar.gz
tar zxf libmcrypt-2.5.8.tar.gz
cd libmcrypt-2.5.8
./configure prefix=/usr/local/libmcrypt
make && make install
echo $?
wget http://ncu.dl.sourceforge.net/project/mcrypt/Libmcrypt/2.5.8/libmcrypt-2.5.8.tar.gz
wget https://jaist.dl.sourceforge.net/project/mcrypt/Libmcrypt/2.5.8/libmcrypt-2.5.8.tar.gz
tar zxf libmcrypt-2.5.8.tar.gz
cd libmcrypt-2.5.8
./configure prefix=/usr/local/libmcrypt
make && make install
echo $?
cd /usr/local/src/
wget http://am1.php.net/distributions/php-5.6.29.tar.bz2
tar jxf php-5.6.29.tar.bz2
cd php-5.6.29
./configure --prefix=/usr/local/php --with-config-file-path=/usr/local/php/etc --with-apxs2=/usr/local/apache2/bin/apxs --with-mysql=/usr/local/mysql --with-mysql-sock=/tmp/mysql.sock --with-openssl --with-libxml-dir --with-gd --with-jpeg-dir --with-png-dir --with-iconv-dir --with-zlib --with-mcrypt=/usr/local/libmcrypt --enable-soap --enable-gd-native-ttf --enable-mbstring --enable-exif --enable-sockets --disable-ipv6 --with-xpm-dir=/usr --disable-fileinfo --with-freetype-dir --enable-mysqlnd
make
make test
make install
echo $?
(3)报错 安装php时的报错
checking libxml2 install dir... no
checking for xml2-config path...
configure: error: xml2-config not found. Please check your libxml2 installation.
检查是否安装了libxm包
rpm -qa |grep libxml2
libxml2-2.6.26-2.1.12
libxml2-python-2.6.26-2.1.12
重新安装libxml2和libxml2-devel包
yum install libxml2
yum install libxml2-devel -y
安装完之后查找xml2-config文件是否存在
find / -name "xml2-config"
/usr/bin/xml2-config
如果存在的话重新安装php
./configure
configure: error: jpeglib.h not found.
yum install libjpeg-devel
configure: error: png.h not found.
yum install libpng-devel
configure: error: xpm.h not found.
yum install libXpm-devel
configure: error: freetype-config not found.
yum -y install freetype-devel
(4)配置
cp php.ini-production /usr/local/php/etc/php.ini
vim /usr/local/apache2/conf/httpd.conf
<IfModule dir_module>
DirectoryIndex index.html index.php index.htm
</IfModule>
AddType application/x-httpd-php .php
vim /etc/profile.d/path.sh
#!/bin/bash
export PATH=$PATH:/usr/local/mysql/bin:/usr/local/apache2/bin:/usr/local/php/bin
source /etc/profile.d/path.sh
apachectl restart
(5)编译安装php扩展curl.so
# wget http://ftp.gnu.org/gnu/m4/m4-1.4.9.tar.gz
# tar -zvxf m4-1.4.9.tar.gz
# cd m4-1.4.9/
# ./configure && make && make install
# cd ../
# wget http://ftp.gnu.org/gnu/autoconf/autoconf-2.62.tar.gz
# tar -zvxf autoconf-2.62.tar.gz
# cd autoconf-2.62/
# ./configure && make && make install
cd /usr/local/src
wget http://curl.haxx.se/download/curl-7.58.0.tar.gz
tar zxvf curl-7.58.0.tar.gz
cd curl-7.58.0
解压源码,并进入到ext/curl目录
安装:
/usr/local/php/bin/phpize
./configure --with-php-config=/usr/local/php/bin/php-config --with-curl=/usr/local/curl(默认路径时无需指定)
make&&make install
会在/usr/local/php/lib/php/extensions/no-debug-non-zts-20100525生成curl.so文件
配置:在php.ini或将所有扩展放置在单独的目录下。
cd/usr/local/php/etc/subconfig ;echo 'extension = "curl.so"' >curl.ini
修改php.ini : allow_url_fopen = On
启用,让扩展生效:
/usr/local/apache/bin/apachectl configtest
/usr/local/apache/bin/apachectl -k restart
/usr/local/php/bin/php -m |grep curl
5 搭建 VSFTPD
(1)检测是否已经安装
rpm -qa | grep vsftpd
(2)安装,设置开机启动
yum -y install vsftpd
chkconfig vsftpd on
(3)修改配置文件
vim /etc/vsftpd/vsftpd.conf
anonymous_enable=NO //设定不允许匿名访问
local_enable=YES //设定本地用户可以访问。注:如使用虚拟宿主用户,在该项目设定为NO的情况下所有虚拟用户将无法访问
chroot_list_enable=YES //使用户不能离开主目录
ascii_upload_enable=YES
ascii_download_enable=YES //设定支持ASCII模式的上传和下载功能
pam_service_name=vsftpd //PAM认证文件名。PAM将根据/etc/pam.d/vsftpd进行认证
(4)安装Berkeley DB工具
yum install db4 db4-utils
(5)创建用户
groupadd vsftpd
adduser -g vsftpd -s /sbin/nologin ftpuser
passwd ftpuser
创建用户密码文本/etc/vsftpd/vuser_passwd.txt ,注意奇行是用户名,偶行是密码
ftpuser
123456
打开/etc/vsftpd/vsftpd.conf,找到chroot_list_file 配置如下
chroot_list_file=/etc/vsftpd/vuser_passwd.txt
生成虚拟用户认证的db文件
db_load -T -t hash -f /etc/vsftpd/vuser_passwd.txt /etc/vsftpd/vuser_passwd.db
随后,编辑认证文件/etc/pam.d/vsftpd,全部注释掉原来语句,再增加以下两句:
auth required pam_userdb.so db=/etc/vsftpd/vuser_passwd
account required pam_userdb.so db=/etc/vsftpd/vuser_passwd
然后,打开/etc/vsftpd/vsftpd.conf,配置如下
local_root=/var/www //虚拟用户根目录,根据实际情况修改
write_enable=YES //可写
设 置Selinux
setsebool ftp_home_dir=1 //设置ftp可以使用home目录
setsebool allow_ftpd_full_access=1 //设置ftp用户可以有所有权限
设置FTP根目录权限 最新的vsftpd要求对主目录不能有写的权限所以ftp为755,主目录下面的子目录再设置777权限
mkdir /var/www //创建目录
chmod R 755 /var
chmod R 777 /var/www
(6)设置防火墙
打开vi /etc/sysconfig/iptables
在“-A INPUT –m state –state NEW –m tcp –p tcp -–dport 22 –j ACCEPT”,下添加:
-A INPUT -m state --state NEW -m tcp -p tcp --dport 21 -j ACCEPT
然后保存,并关闭该文件,在终端内运行下面的命令,刷新防火墙配置:
service iptables restart
(7)配置PASV模式
vsftpd默认没有开启PASV模式,现在FTP只能通过PORT模式连接,要开启PASV默认需要通过下面的配置
打开/etc/vsftpd/vsftpd.conf,在末尾添加
pasv_address=外网IP
pasv_enable=YES
pasv_min_port=40000
pasv_max_port=40080
pasv_promiscuous=YES
在防火墙配置内开启40000到40080端口
-A INPUT -m state --state NEW -m tcp -p tcp --dport 40000:40080 -j ACCEPT
重启iptabls和vsftpd
service iptables restart
service vsftpd restart