Linux上web服务器搭建
安装php依赖包:
yum -y install gcc gcc++ libxml2 libxml2-devel
yum install gcc make gd-devel libjpeg-devel libpng-devel libxml2-devel bzip2-devel libcurl-devel -y
yum -y install curl-devel
yum install openssl openssl-devel
yum install libmcrypt libmcrypt-devel mcrypt mhash 首先,我们需要下载安装php5.5 cd /usr/local/src/
wget http://www.php.net/get/php-5.5.30.tar.bz2/from/jp1.php.net/mirror 如果以上PHP不存在了,大家可以直接到官方下载. 如果还是找不到可以留言,我将会通过邮箱发送. 确保安装之前有安装gd,png,curl,xml等等lib开发库。如果不确定,执行以下命令: yum install gcc make gd-devel libjpeg-devel libpng-devel libxml2-devel bzip2-devel libcurl-devel -y 以下参数支持,ftp,图片函数,pdo等支持,因为使用了php自带的mysqlnd,所以不需要额外安装mysql的lib库了.如果你是64位系统,参数后面加上–with-libdir=lib64,如果不是可以跳过。 tar zxvf php-5.5.30.tar.gz
cd php-5.5.30
./configure --prefix=/usr/local/php-5.5.30 --with-config-file-path=/usr/local/php-5.5.30/etc --with-bz2 --with-curl --enable-ftp --enable-sockets --disable-ipv6 --with-gd --with-jpeg-dir=/usr/local --with-png-dir=/usr/local --with-freetype-dir=/usr/local --enable-gd-native-ttf --with-iconv-dir=/usr/local --enable-mbstring --enable-calendar --with-gettext --with-libxml-dir=/usr/local --enable-pcntl --with-mcrypt=/usr/local/ --with-zlib --with-pdo-mysql=mysqlnd --with-mysqli=mysqlnd --with-mysql=mysqlnd --enable-dom --enable-xml --enable-fpm --with-libdir=lib64 --with-openssl
make
make install 备注:如果PHP不需要curl和ftp的支持,可以将以上的–with-curl –enable-ftp去掉. 如果你是专业的linux从业人员,你完全可以看着help来选择你的安装参数,如果你不是的话,我建议你直接复制黏贴我的配置参数.这样可以少走一些弯路. 已经安装完成了php,下面我们针对php,配置php cp php.ini-production /usr/local/php-5.5.30/etc/php.ini
cp /usr/local/php-5.5.30/etc/php-fpm.conf.default /usr/local/php-5.5.30/etc/php-fpm.conf 其实我们只是使用它默认提供给我们的一个配置,当然大家也可以根据自己需要进行修改配置信息,然后进行启动php-fpm /usr/local/php-5.5.30/sbin/php-fpm 执行以上命令,如果没报错一般情况下表示启动正常,如果不放心,也可以通过端口判断是PHP否启动 # netstat -lnt | grep 9000
tcp 0 0 127.0.0.1:9000 0.0.0.0:* LISTEN 安装mysql依赖包:
yum -y install wget gcc gcc-c++ make cmake ncurses-devel libtool zilib-devel
安装mysql: locate安装:
yum -y install mlocate
lsof安装:
yum -y install lsof 安装nginx:
yum -y install pcre-devel
yum -y install openssl openssl-devel 安装:
./configure
make
make install
//nginx设置pathinfo:
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php; set $path_info ""; #定义变量 $path_info ,用于存放pathinfo信息 set $real_script_name $fastcgi_script_name; #定义变量 $real_script_name,用于存放真实地址 if ($fastcgi_script_name ~ "^(.+?\.php)(/.+)$") { #如果地址与引号内的正则表达式匹配 set $real_script_name $1; #将文件地址赋值给变量 $real_script_name set $path_info $2; #将文件地址后的参数赋值给变量 $path_info } fastcgi_param SCRIPT_FILENAME $document_root$real_script_name;
fastcgi_param SCRIPT_NAME $real_script_name;
fastcgi_param PATH_INFO $path_info;
include fastcgi_params; memcache安装:
yum install libevent-devel 安装libmemcached-1.0.18依赖
gcc版本过低或导致错误,下面是升级版本
yum install gcc44 gcc44-c++ libstdc++44-devel
# export CC=/usr/bin/gcc44
# export CXX=/usr/bin/g++44
# ./configure
#make
#make install
安装php的memcache扩张:
下载地址:https://pecl.php.net/package/memcached
memcached-2.2.0.tgz
tar -zxvf memcached-2.2.0.tgz
cd memcached-2.2.0
/usr/local/php-5.5.30/bin/phpize
./configure --with-php-config=/usr/local/php-5.5.30/bin/php-config --disable-memcached-sasl --enable-memcached --enable-memcached-json
make
make install /usr/local/php-5.5.30/lib/php/extensions/no-debug-non-zts-20121212/ benstalkd:
https://github.com/kr/beanstalkd/archive/v1.10.zip
unzip beanstalkd-1.10
make
make install
nohup /usr/local/bin/beanstalkd -l 127.0.0.1 -p 11300 >> /var/log/beanstalk.log & 安装pcntl扩张单独安装:
cd ext/pcntl
#先执行phpize
/usr/local/php-5.5.30/bin/phpize
./configure --with-php-config=/usr/local/php-5.5.30/bin/php-config
(ps:请正确的指定php-config的目录)
make
make install 编辑/etc/php.ini,加入
extension=pcntl.so
vsftpd安装:
CentOS 5.6 x86_64
ip:192.168.10.100
二、编译依赖组件
yum -y install gcc gcc-c++ db4-utils pam-devel
yum -y install gcc gcc-c++ db-utils pam-devel
三、编译安装配置vsftpd
1、编译
依赖:
yum install tcp_wrappers
yum install tcp_wrappers-devel
wget https://security.appspot.com/downloads/vsftpd-3.0.2.tar.gz
tar -zxf vsftpd-3.0.2.tar.gz
cd vsftpd-3.0.2
#vi builddefs.h
#define VSF_BUILD_TCPWRAPPERS //允许使用TCP Wrappers(默认是undef)
#define VSF_BUILD_PAM //允许使用PAM认证
#define VSF_BUILD_SSL //允许使用SSL(默认是undef)
make && make install
mkdir /etc/vsftpd/
cp vsftpd.conf /etc/vsftpd/vsftpd.bak
grep -v '^#' /etc/vsftpd/vsftpd.bak > /etc/vsftpd/vsftpd.conf
#为了让vsftpd支持本地用户登录,讲身份认证模块拷贝至系统目录中
cp RedHat/vsftpd.pam /etc/pam.d/vsftpd
1. 添加虚拟用户口令文件
[root@ftp /]#vi /etc/vsftpd/vuser.txt
添加虚拟用户名和密码,一行用户名,一行密码,以此类推。奇数行为用户名,偶数行为密码。
test001 #用户名
123456 #密码
test002 #用户名
123456 #密码
2. 生成虚拟用户口令认证文件
将刚添加的vuser.txt虚拟用户口令文件转换成系统识别的口令认证文件。
[root@CentOS5 /]#db_load -T -t hash -f /etc/vsftpd/vuser.txt /etc/vsftpd/vuser.db
3. 编辑vsftpd的PAM认证文件
[root@CentOS5 /]#vi /etc/pam.d/vsftpd
将里面其他的都注释掉,添加下面这两行:
auth required /lib/security/pam_userdb.so db=/etc/vsftpd/vuser
account required /lib/security/pam_userdb.so db=/etc/vsftpd/vuser
4. 建立本地映射用户并设置宿主目录权限
所有的FTP虚拟用户需要使用一个系统用户,这个系统用户不需要密码。
[root@CentOS5 /]#useradd vftp -d /var/www -s /bin/false
5. 配置vsftpd.conf(设置虚拟用户配置项)
[root@CentOS5 /]#vi /etc/vsftpd/vsftpd.conf
guest_enable=YES #开启虚拟用户
guest_username=vftp #FTP虚拟用户对应的系统用户
pam_service_name=vsftpd #PAM认证文件
配置文件实例
/etc/vsftpd/vsftpd.conf
listen=YES
userlist_enable=NO
pam_service_name=vsftpd
tcp_wrappers=YES
guest_enable=YES
guest_username=vftp
virtual_use_local_privs=YES
user_config_dir=/etc/vsftpd/userconfig
anonymous_enable=NO
local_enable=YES
write_enable=YES
anon_upload_enable=NO
anon_mkdir_write_enable=NO
dirmessage_enable=YES
use_localtime=YES
xferlog_enable=YES
connect_from_port_20=YES
chown_uploads=NO
xferlog_file=/var/log/vsftpd.log
xferlog_std_format=YES
nopriv_user=vftp
async_abor_enable=YES
ascii_upload_enable=YES
ascii_download_enable=YES
ftpd_banner=This Vsftp server support virtual users ^_^!
chroot_local_user=YES
chroot_list_enable=NO
虚拟用户配置实例
/etc/vsftpd/userconfig/test001
test001的根目录为/data,权限为可上传、下载、创建、改名和删除的权限。
local_root=/var/www
write_enable=YES
anonymous_enable=NO
anon_upload_enable=NO
anon_other_write_enable=NO
anon_mkdir_write_enable=NO
遇到的问题及解决方法:
/lib/libcap.so.1: could not read symbols: file in wrong format
collect2: ld returned 1 exit status
make: *** [vsftpd] Error 1
解决方法:
修改vsftpd 源码包的vsf_findlibs.sh
vi vsf_findlibs.sh
将locate_library /lib/libpam.so.0 && echo "/lib/libpam.so.0";
改为locate_library /lib64/libpam.so.0 && echo "/lib64/libpam.so.0";
/lib/libcap.so.1: could not read symbols: File in wrong format
collect2: ld returned 1 exit status
make: *** [vsftpd] Error 1
解决方法:
同样修改vsf_findlibs.sh
将
# look for libcap (capabilities)
if locate_library /lib/libcap.so.1; then
echo "/lib/libcap.so.1";
else
locate_library /usr/lib/libcap.so && echo "-lcap";
locate_library /lib/libcap.so && echo "-lcap";
fi
修改为
# Look for libcap (capabilities)
if locate_library /lib64/libcap.so.1; then
echo "/lib64/libcap.so.1";
else
locate_library /usr/lib64/libcap.so && echo "-lcap";
locate_library /lib64/libcap.so && echo "-lcap";
fi
3、500 OOPS: vsftpd: refusing to run with writable root inside chroot()
解决方法:
这个错误是在v2.3.5以后才有的,见官方changlog如下(意思是不能使用chroot限制可写的根目录):
Add stronger checks for the configuration error of running with a writeable root directory inside a chroot(). This may bite people who carelessly turned on chroot_local_user but such is life.
好吧,我们如果启用chroot,必须保证ftp根目录不可写,这样对于ftp根直接为网站根目录的用户不方便,所以建议假如ftp根目录是/data,那么网站结构可以这样分,/data/log为日志目录,/data/web为网站根目录,这样我们就可以去掉/data目录的写入权限而不影响网站的正常运行。
chmod a-w /data
vsftpd默认加载配置文件位置:/etc/vsftpd.conf
无需独立方式启动,直接启动:
nohup /usr/local/sbin/vsftpd &
扩展插件云盘: 链接:http://pan.baidu.com/s/1kVIu5Zh 密码:0wul
扩展插件云盘: 链接:http://pan.baidu.com/s/1kVIu5Zh 密码:0wul
Linux上web服务器搭建的更多相关文章
- linux上SVN服务器搭建后windows无法连接到服务器
忙了一天,linux搭建svn服务器,搭建好后windows一直无法连接,总觉得自己对: 原因: 1.以后禁止用sublime在本地编辑好后用XFTP上传到服务器(这样会导致文件权限问题,不能替换成功 ...
- linux上FTP服务器搭建
一.启动vsftpd服务 1. 启动VSFTP服务器 A. cenos下运行:yum install vsftpd B. 登录Linux主机后,运行命令:"service vsftpd st ...
- 在Linux上用Apache搭建Git服务器
在Linux上用Apache搭建Git服务器 最近在学Linux,终于在Linux上用Apache搭建起了Git服务器,在此记录一下. 服务器:阿里云服务器 Linux版本:CentOS 6.5 ...
- 树莓派之web服务器搭建
树莓派之web服务器搭建 (一)使用ufw创建防火墙 设置目的:可以完全阻止对树莓派的访问也可以用来配置通过防火墙对特点程序的访问.使用防火墙更好的保护树莓派. 准备工作 1.带有5V电源的树莓派 2 ...
- 面向新手的Web服务器搭建(一)——IIS的搭建
很多童鞋说自己是做移动开发的,想挂个简单的Web API,可是服务器又不会搭,这样一来测试就成了问题.看看网上的教程,发现略难懂,而且大多是一个转一个,没价值,所以干脆写几篇文章讲讲简单的Web服务器 ...
- linux下的服务器搭建集成环境
linux下的服务器搭建集成环境 ——写给初学者的我们 1.准备工具 1.1 SecureCRT SecureCRT是一款支持SSH(SSH1和SSH2)的终端仿真程序,简单地说是Windows下登录 ...
- Linux - CentOS6.5服务器搭建与初始化配置详解(下)
传送带:Linux - CentOS6.5服务器搭建与初始化配置详解(上) 继续接着上面的安装,安装完后会出现下面界面 点击reboot重启 重启后可以看到下面的tty终端界面 因为这就是最小化安装 ...
- Linux下SVN服务器搭建配置
Linux下SVN服务器搭建配置 1.SVN服务安装 yum install subversion 2.创建SVN代码仓库 mkdir /data/svn svnadmin create /data/ ...
- linux 中 svn 服务器搭建 重启
鉴于在搭建时,参考网上很多资料,网上资料在有用的同时,也坑了很多人 本文的目的,也就是想让后继之人在搭建svn服务器时不再犯错,不再被网上漫天的坑爹作品所坑害,故此总结 /******开始****** ...
随机推荐
- CSV表格融合
常用表格融合函数 1 merge() 用于融合的函数 https://blog.csdn.net/brucewong0516/article/details/82707492 pd.merge(lef ...
- C#通过代码判断并注册程序集到GAC
var dllName = "EasyHook.dll"; var dllPath = Path.Combine(AppDomain.CurrentDomain.BaseDirec ...
- 【SpringBoot】SpringBoot拦截器实战和 Servlet3.0自定义Filter、Listener
=================6.SpringBoot拦截器实战和 Servlet3.0自定义Filter.Listener ============ 1.深入SpringBoot2.x过滤器Fi ...
- 一个nginx服务器配置多站点
有时候你想在一台服务器上为不同的域名运行不同的站点.比如www.siteA.com作为博客,www.siteB.com作为论坛.你可以把两个域名的IP都解析到你的服务器上,但是没法在Nginx的根目录 ...
- 一 Struts框架(上)
Struts2 是基于MVC的WEB框架 经过六年多的发展,Struts1已经成为了一个高度成熟的框架,不管是稳定性还是可靠性都得到了广泛的证明.市场占有率超过20%,拥有丰富的开发人群,几乎已经成为 ...
- C# System.IO和对文件的读写操作
System.IO命名空间中常用的非抽象类 BinaryReader 从二进制流中读取原始数据 BinaryWriter 从二进制格式中写入原始数据 BufferedStream 字节流的临时存储 ...
- kafka consumer防止数据丢失(转)
http://kane-xie.iteye.com/blog/2225085 kafka最初是被LinkedIn设计用来处理log的分布式消息系统,因此它的着眼点不在数据的安全性(log偶尔丢几条无所 ...
- WordPress版微信小程序2.2.8版发布
距离上次更新已经一个月了,这期间对WordPress版微信小程序 做的不少小的更新和性能的优化,此次版本更新推出了两个比较重点的功能:点赞和赞赏.同时,优化了文章页面的功能布局,在评论区把常用的功能: ...
- 通过eclipse打开jdk native源码
1.下载 eclipse http://www.eclipse.org/downloads/eclipse-packages/ 建议下载 Eclipse IDE for Eclipse Committ ...
- Java选择排序,插入排序,快速排序
public class Test { public static void main(String[] args) { int a[] = { 1, 2, 3, 4, 5 }; 选择排序(a); ...