[转帖]centos环境搭建【php、nginx、tomcat、mysql、samba、NFS】以及可能遇到问题解决方案_MySQL, Oracle及数据库讨论区_Weblogic技术|Tuxedo技术|中间件技术|Oracle论坛|JAVA论坛|Linux/Unix技术|hadoop论坛_联动北方技术论坛  
网站首页 | 关于我们 | 服务中心 | 经验交流 | 公司荣誉 | 成功案例 | 合作伙伴 | 联系我们 |
联动北方-国内领先的云技术服务提供商
»  游客             当前位置:  论坛首页 »  自由讨论区 »  MySQL, Oracle及数据库讨论区 »
总帖数
1
每页帖数
101/1页1
返回列表
0
发起投票  发起投票 发新帖子
查看: 2242 | 回复: 0   主题: [转帖]centos环境搭建【php、nginx、tomcat、mysql、samba、NFS】以及可能遇到问题解决方案        下一篇 
barry
注册用户
等级:中校
经验:1534
发帖:236
精华:2
注册:2012-1-13
状态:离线
发送短消息息给barry 加好友    发送短消息息给barry 发消息
发表于: IP:您无权察看 2014-11-21 9:51:40 | [全部帖] [楼主帖] 楼主

1、部署Centos5.4服务器–PHP篇
其实,在写这篇文章的时候,我很心虚,因为对于安装php,我是照搬张宴博客里面的操作,连安装文件也都是他那里下载下来的;
而且,我发现,安装张宴的安装方法,就会报1个错误,而这个错误,我都在博客里面提过了:
php错误 127:make[1]: *** [install-pear-installer]
还有一个是添加上Zend支持(主要是更新zend版本到3.x):
Attention: Zend Optimizer not Installed ——已解决
安装具体步骤:
1、下载需要的工具(张宴博客里面有)

mcrypt-2.6.8.tar.gz
pcre-8.01.tar.gz
libiconv-1.13.tar.gz
memcache-2.2.5.tgz
eaccelerator-0.9.6.tar.bz2
memcached-1.4.5.tar.gz
PDO_MYSQL-1.0.2.tgz
libmcrypt-2.5.8.tar.gz
mhash-0.9.9.9.tar.gz
php-5.2.13-fpm-0.5.13.diff.gz
ImageMagick.tar.gz
ZendOptimizer-3.3.9-linux-glibc23-i386.tar.gz
imagick-2.3.0.tgz


2、更新库文件(centos系统)

yum -y install gcc gcc-c++ pcre pcre-devel autoconf libjpeg libjpeg-devel libpng libpng-devel  freetype freetype-devel libxml2 libxml2-devel zlib zlib-devel glibc glibc-devel glib2 glib2- devel bzip2 bzip2-devel ncurses ncurses-devel curl curl-devel e2fsprogs e2fsprogs-devel krb5  krb5-devel libidn libidn-devel openssl openssl-devel openldap openldap-devel nss_ldap  openldap-clients openldap-servers


3、进入软件目录,运行以下命令,前提是软件名称、版本均正确的情况(安装路径是/usr/local/php,建议先复制蓝色之前的这部分,然后蓝色部分单独执行,因为这部分可能会报错,需要参见上面给的解决方法,切忌!)

tar zxvf libiconv-1.13.tar.gz
cd libiconv-1.13/
./configure --prefix=/usr/local
make
make install
cd ../
tar zxvf libmcrypt-2.5.8.tar.gz
cd libmcrypt-2.5.8/
./configure
make
make install
/sbin/ldconfig
cd libltdl/
./configure --enable-ltdl-install
make
make install
cd ../../
tar zxvf mhash-0.9.9.9.tar.gz
cd mhash-0.9.9.9/
./configure
make
make install
cd ../
ln -s /usr/local/lib/libmcrypt.la /usr/lib/libmcrypt.la
ln -s /usr/local/lib/libmcrypt.so /usr/lib/libmcrypt.so
ln -s /usr/local/lib/libmcrypt.so.4 /usr/lib/libmcrypt.so.4
ln -s /usr/local/lib/libmcrypt.so.4.4.8 /usr/lib/libmcrypt.so.4.4.8
ln -s /usr/local/lib/libmhash.a /usr/lib/libmhash.a
ln -s /usr/local/lib/libmhash.la /usr/lib/libmhash.la
ln -s /usr/local/lib/libmhash.so /usr/lib/libmhash.so
ln -s /usr/local/lib/libmhash.so.2 /usr/lib/libmhash.so.2
ln -s /usr/local/lib/libmhash.so.2.0.1 /usr/lib/libmhash.so.2.0.1
tar zxvf mcrypt-2.6.8.tar.gz
cd mcrypt-2.6.8/
/sbin/ldconfig
./configure
make
make install
cd ../
tar zxvf php-5.2.13.tar.gz
gzip -cd php-5.2.13-fpm-0.5.13.diff.gz | patch -d php-5.2.13 -p1
cd php-5.2.13/
./configure --prefix=/usr/local/php --with-config-file-path=/usr/local/php/etc --with-iconv-dir=/usr/local --with-freetype-dir --with-png-dir --with-zlib --with-libxml-dir=/usr --enable-xml --disable-rpath --enable-discard-path --enable-safe-mode --enable-bcmath --enable-shmop --enable-sysvsem --enable-inline-optimization --with-curl --with-curlwrappers --enable-mbregex --enable-fastcgi --enable-fpm --enable-force-cgi-redirect --enable-mbstring --with-mcrypt --with-gd --enable-gd-native-ttf --with-openssl --with-mhash --enable-pcntl --enable-sockets --with-ldap --with-ldap-sasl --with-xmlrpc --enable-zip --enable-soap --with-mysql=/usr/local/mysql --with-mysqli=/usr/local/mysql/bin/mysql_config
make ZEND_EXTRA_LIBS='-liconv'
make install
cp php.ini-dist /usr/local/php/etc/php.ini
cd ../
tar zxvf memcache-2.2.5.tgz
cd memcache-2.2.5/
/usr/local/php/bin/phpize
./configure --with-php-config=/usr/local/php/bin/php-config
make
make install
cd ../
tar jxvf eaccelerator-0.9.6.tar.bz2
cd eaccelerator-0.9.6/
/usr/local/php/bin/phpize
./configure --enable-eaccelerator=shared --with-php-config=/usr/local/php/bin/php-config
make
make install
cd ../
tar zxvf PDO_MYSQL-1.0.2.tgz
cd PDO_MYSQL-1.0.2/
/usr/local/php/bin/phpize
./configure --with-php-config=/usr/local/php/bin/php-config --with-pdo-mysql=/usr/local/mysql
make
make install
cd ../
tar zxvf ImageMagick.tar.gz
cd ImageMagick-6.5.1-2/
./configure
make
make install
cd ../
tar zxvf imagick-2.3.0.tgz
cd imagick-2.3.0/
/usr/local/php/bin/phpize
./configure --with-php-config=/usr/local/php/bin/php-config
make
make install
cd ../
sed -i 's#extension_dir = "./"#extension_dir = "/usr/local/php/lib/php/extensions/no-debug-non-zts-20060613/"\nextension = "memcache.so"\nextension = "pdo_mysql.so"\nextension = "imagick.so"\n#' /usr/local/php/etc/php.ini
sed -i 's#output_buffering = Off#output_buffering = On#' /usr/local/php/etc/php.ini
sed -i "s#; always_populate_raw_post_data = On#always_populate_raw_post_data = On#g" /usr/local/php/etc/php.ini
mkdir -p /usr/local/eaccelerator_cache
tar zxvf ZendOptimizer-3.3.9-linux-glibc23-i386.tar.gz
mkdir /usr/local/Zend
mkdir /usr/local/Zend/lib
cp ZendOptimizer-3.3.9-linux-glibc23-i386/data/5_2_x_comp/ZendOptimizer.so /usr/local/Zend/lib


4、以上步骤如果觉得过于恐怖,可以一步一步分开运行,接下来是编辑php.ini文件

vim /usr/local/php/etc/php.ini


末尾输入:

 [eaccelerator]
zend_extension="/usr/local/php/lib/php/extensions/no-debug-non-zts-20060613/eaccelerator.so"
eaccelerator.shm_size="64"
eaccelerator.cache_dir="/usr/local/eaccelerator_cache"
eaccelerator.enable="1"
eaccelerator.optimizer="1"
eaccelerator.check_mtime="1"
eaccelerator.debug="0"
eaccelerator.filter=""
eaccelerator.shm_max="0"
eaccelerator.shm_ttl="3600"
eaccelerator.shm_prune_period="3600"
eaccelerator.shm_only="0"
eaccelerator.compress="1"
eaccelerator.compress_level="9"
[zend]
zend_optimizer.optimization_level=15
zend_extension=/usr/local/Zend/lib/ZendOptimizer.so


5、编辑php-fpm.conf文件,加上php运行的用户和用户组

<value name=”user”>www</value>
<value name=”group”>www</value>


6、安装成功,运行php,看9000端口是否开放(9000端口开放,php安装成功)

/usr/local/php/sbin/php-fpm start
netstat -ntl


OK,基本上是这样的,可能有遗漏,欢迎大家指正~~~工具包我找个时间传到新浪共享上面。
原创文章,转载请注明: 转载自三叶草
本文链接地址: 部署Centos5.4服务器–PHP篇

本帖最后由 caj1986 于 2010-9-26 12:13 编辑

2、部署Centos5.4服务器–Nginx篇:http://www.ajcheng.com/1065.html

nginx安装配置,其实张宴的博客里面讲的很详细,当初我就是看他的教程,一步一步来的;最简单的就是下载好nginx后,直接运行下面命令:

wget
http://nginx.org/download/nginx-0.8.37.tar.gz
tar zxvf nginx-0.8.37.tar.gz
cd nginx-0.8.37
./configure
make
make install


这样就安装好了(安装的路径为/usr/local/nginx/),然后启动nginx:

/usr/local/nginx/sbin/nginx


然后打开网页,输入服务器的ip地址,如果nginx运行的话,会出现如下字样:

Welcome to nginx!


OK,到这里nginx算是完成安装了。不过要注意,有个库文件必须要安装,否则nginx会报错:

./configure: error: the HTTP rewrite module requires the PCRE library.
You can either disable the module by using –without-http_rewrite_module
option, or install the PCRE library into the system, or build the PCRE library
statically from the source with nginx by using –with-pcre= option.


这个库文件就是PCRE库,可以直接yum安装:

yum install pcre-devel


当然,也可以提前更新所需库文件:

yum -y install gcc gcc-c++ autoconf libjpeg libjpeg-devel libpng libpng-devel freetype freetype-devel libxml2 libxml2-devel zlib zlib-devel glibc glibc-devel glib2 glib2-devel bzip2 bzip2-devel ncurses ncurses-devel curl curl-devel e2fsprogs e2fsprogs-devel krb5 krb5-devel libidn libidn-devel openssl openssl-devel openldap openldap-devel nss_ldap openldap-clients openldap-servers


====先干活,中午再来写配置文件=====
关于配置文件nginx.conf写法,看你需要搭建什么样的网站了,比如,你要搭建个discuz程序,则只需要将php页面提交给php程序运行即可;同理,需要运行jsp之类的,只需要代理到tomcat运行;

location ~ .*\.(php|php5)?$ #所有jsp的页面均交由tomcat处理
{
      #### #fastcgi_pass unix:/tmp/php-cgi.sock;####
      fastcgi_pass 127.0.0.1:9000;
      fastcgi_index index.php;
      include fcgi.conf;
}
location ~ .*.jsp$ #所有jsp的页面均交由tomcat处理
{
      index index.jsp;
      proxy_pass http://127.0.0.1:8080;
}


如果做了负载均衡,用2个tomcat或者两台服务器跑的话,可以在配置文件中添加:

upstream app_server {
      server 127.0.0.1:8081;
      server 127.0.0.1:8080;
}


如果要重写一些网址的话,可以根据需要添加(下面是我们网站的例子):

location /{
rewrite ^/register_([a-z]+).html$ /register.do?usertype=$1 last;
break;


如果需要禁止ip访问,可以输入如下内容:

server{
      listen 80 default_server;
      server_name _;
      return 403;
}


可能,在配置负载均衡以及重写模块的时候,比较难一点,可以去参考相关文档,这个我也是初学,说不清楚,也只会根据文档依样画葫芦~
nginx篇到此结束~
原创文章,转载请注明: 转载自三叶草
本文链接地址: 部署Centos5.4服务器–Nginx篇

3、部署Centos5.4服务器–tomcat篇:http://www.ajcheng.com/1063.html
2010-09-02 08:58:35补记
不好意思,忘记环境变量设置了,需要设置jre环境变量,当然首先就需要下载jdk了,可以去sun官网上下载,我用的是jdk-6u20-linux-i586.bin,直接安装,然后移动文件夹到/opt下面:

./jdk-6u20-linux-i586.bin
mv jdk-6u20-linux-i586 /opt/jdk


之后编辑环境变量文件,在最配置文件最下方输入粗体内容,wq保存后刷新:

vim /etc/profile
export JAVA_HOME=/opt/jdk
export PATH=$PATHJAVA_HOME/bin
export CLASSPATH=.JAVA_HOME/jre/libJAVA_HOME/lib:$JAVA_HOME/lib/tools.jar
export CLASSPATH=$CLASSPATH:$CATALINA_HOME/common/lib
source /etc/profile


++++++++++分割线++++++++++
前面提到了mysql的部署步骤,其实,我配置的顺序中,tomcat在mysql之前的。不过由于tomcat安装配置过程很简单,问题很少,所以放到今天整理;
tomcat的安装很简单,只需要解压缩即可使用了,由于我的tools里面有tomcat7的包,所以直接上传,解压:

tar zxvf apache-tomcat-7.0.0.tar.gz
mv apache-tomcat-7.0.0 /usr/local/tomcat


配置tomcat,主要是指定其路径/www(粗体为添加的内容):

vim /usr/local/tomcat/conf/server.xml
<Host name=”localhost”  appBase=”webapps”
unpackWARs=”true” autoDeploy=”true”
xmlValidation=”false” xmlNamespaceAware=”false”>
<Context path=”" docBase=”/www” debug=”0″ reloadable=”true” crossContext=”true”/>


之后启动tomcat

/usr/local/tomcat/bin/startup.sh


注意第一个错误出现了:
tomcat启动成功,端口开放了,输入网站后台地址,弹出了登陆界面,但是输入用户名、密码、验证码之后,提示:验证码错误!刷新后登陆,还是提示验证码错误!
让同事检查有关验证码生成以及判断的语句,没有任何问题;后来同事建议使用6.0版本tomcat,果然,用6.0版本跑网站,验证码成功完成了验证!
问题解决!这个问题主要是由于tomcat7目前还是测试版本,肯定不及tomcat6稳定。
第二个问题出现时间是上午11点的时候:
同事告诉我,后台搜索功能无效,我登陆后台,随便输入数字,搜索成功;但是当我输入中文搜索,果然无效,并且搜索框内容变成了乱码;一看就知道是tomcat里面定义UTF8的编码格式;
解决方法,进入tomcat,定义UTF8编码格式(粗体部分):

vim /usr/local/tomcat/conf/server.xml
<Connector port=”8080″ protocol=”HTTP/1.1″
connectionTimeout=”20000″
redirectPort=”8443″
useBodyEncodingForURI=”true”  URIEncoding=”UTF-8″ />


ok,tomcat配置至此完工;至于tomcat负载均衡session写法,之后的文章将会提及。
原创文章,转载请注明: 转载自三叶草
本文链接地址: 部署Centos5.4服务器–Tomcat篇

本帖最后由 caj1986 于 2010-9-26 12:34 编辑

4、部署Centos5.4服务器–mysql篇:http://www.ajcheng.com/1062.html

mysql版本是mysql-5.0.89-linux-i686-glibc23.tar.gz,我在《mysql for linux 压缩包下载》里面已经提供了;由于是压缩包,解压即可使用,所以不用编译了;
解压后,移动到/usr/local/mysql/,然后进入mysql路径,运行mysql:

[root@jst-cn mysql]# ./support-files/mysql.server start


于是报了第一个错:

Starting MySQL.Manager of pid-file quit without updating fi[失败],

这个错误,我曾经在博客里面两次提到,分别是《【解决】Starting MySQL.Manager of pid-file quit without updating fi[失败]》和《权限问题造成:Starting MySQL.Manager of pid-file quit without updating fi[失败]》,但是这次和这两篇文章提到的不同,因为我忘记创建测试数据了,于是创建测试数据:

/usr/local/mysql/scripts/mysql_install_db –user=mysql


于是,第二个错误来了:

FATAL ERROR: Could not find /home/mysql/bin/my_print_defaults
If you are using a binary release, you must run this script from
within the directory the archive extracted into. If you compiled
MySQL yourself you must run ‘make install’ first.


这个错误原因是——没有指定mysql路径以及数据库存放路径,解决方法是在配置文件里面添加路径:

vim /etc/my.cnf


在[mysld] 后面加上路径:

basedir = /usr/local/mysql
datadir =/opt/data;


第三个错误,是在我进入mysql的时候出现的:

mysql启动成功后,用这命令进入mysql报错——mysql -u root

-bash: mysql: command not found


这个错误原因是,没有配置环境变量,没有将mysql中的bin文件映射过去,解决方法有两个,一个是配置环境变量(太懒,没弄),另外一个就是进入bin路径再输入mysql命令登陆:

cd /usr/local/mysql/bin
mysql -u root


第四个错误是配置远程登陆mysql时报错(用navicat.exe):

ERROR 1130: Host ’192.168.1.3′ is not allowed to connect to this MySQL server


这个由于是mysql禁用了远程登陆,只允许localhost登陆,Google后,找到两种方法,我用了是第二种:

1。 改表法。登入mysql,更改 ”mysql” 数据库里的 ”user” 表里的 ”host” 项,从”localhost”改称”%”

mysql -u root -pvmwaremysql>use mysql;mysql>update user set host = ’%' where user = ’root’;mysql>select host, user from user;


2. 授权法。例如,你想root使用password从任何主机连接到mysql服务器的话。

GRANT ALL PRIVILEGES ON *.* TO ’root‘@’%' IDENTIFIED BY ’password’ WITH GRANT OPTION;


另外,如果你想允许用户myuser从ip为192.168.1.3的主机连接到mysql服务器,并使用mypassword作为密码

GRANT ALL PRIVILEGES ON *.* TO ’myuser’@'192.168.1.3′ IDENTIFIED BY ’mypassword’ WITH GRANT OPTION;


至此,mysql终于开始正常工作了!下面来整体回顾下正确的操作步骤:

1、添加mysql用户以及用户组:

groupadd mysql
useradd mysql -g mysql


2、移动mysql的配置文件,将/usr/local/mysql/support-files/my-large.cnf移动到/etc/my.cnf

cp /usr/local/mysql/support-files/my-large.cnf  /etc/my.cnf


3、配置my.cnf,添加上mysql以及data路径

vim /etc/my.cnf


在[mysld] 后面加上路径:

basedir = /usr/local/mysql
datadir =/opt/data;


4、更改mysql和data属性为mysql用户/用户组,并添加权限

chown -R mysql.mysql /usr/local/mysql
chmod -R 755 /usr/local/mysql
chown -R mysql.mysql /opt/data
chmod -R 755 /opt/data


5、生成测试数据:

/usr/local/mysql/scripts/mysql_install_db –user=mysql


6、加入系统启动项

cp /usr/local/mysql/support-files/mysql.server /etc/rc.d/init.d/mysql
chkconfig mysql on
chkconfig  –list mysql    #查看自启动情况


mysql           0:关闭  1:关闭  2:启用  3:启用  4:启用  5:启用  6:关闭    #自启动成功

7、如需登陆mysql或者mysqladmin等,必须进入/usr/local/mysql/bin目录再输入命令

cd /usr/local/mysql/bin
mysql -u root -p


8、允许远程连接

mysql -u root -pvmwaremysql>use mysql;mysql>update user set host = ’%' where user = ’root’;mysql>select host, user from user;


其实安装mysql的过程中只要细心一点,一定可以避免犯我上面说的那些错误的!
原创文章,转载请注明: 转载自三叶草
本文链接地址: 部署Centos5.4服务器–MySql篇

5、部署Centos5.4服务器–samba篇:http://www.ajcheng.com/1078.html
前面有说道,linux共享采用NFS方式,但是linux和Windows共享则要用到samba这个东东了(注:linux环境的防火墙和selinux均为关闭状态)…
本来没想到要到服务器上部署samba,但是同事需要linux上面的文件生成索引,ftp协议比较烦,于是让我架设个samba共享。samba的大名在我以前玩Windows的时候就听说过,但是一直没有用过,今天来见识下吧。
首先登陆系统,用yum功能进行安装:

yum -y install samba


用yum安装的好处就是,可免除手动安装很多关联的库文件。安装完成后,直接启动samba:

service smb start


成功启动,再来看看它的配置文件,samba的配置文件位于:/etc/samba/,smb.conf为主要配置文件,打开:

vim /etc/samba/smb.conf


最简单开启一个共享目录,比如/opt/tools,可以进行如下操作:

[global]
workgroup = ajcheng
netbios name = ajcheng
server string = I don’t know
security = share
[ajcheng]
path = /opt/tools
writeable = yes
browseable = yes
guest ok =yes


这里注意两个地方,一个是security,这个的share表示无需密码就可以访问;粗体的部分表示可以自定义,只要格式对就可以。
OK,基本配置就这样了,注意修改配置文件后,需要重启服务:

service smb restart


如果需要加入启动项,用chkconfig命令:

chkconfig smb on


其他的配置网上很多地方都有,怎么加密码,怎么配置对应用户对应权限等之类的...这里就不罗嗦了,该dota了~~

6、部署Centos5.4服务器–NFS篇:http://www.ajcheng.com/1066.html&&http://www.ajcheng.com/32.html

利用nfs 可以共享系统中的指定文件夹给网络中的其它机器。我们经常可以利用nfs对系统空间进行扩容
nfs的构成分成两个部份
1.被分享的目录的机器通常称之为nfs server
2.连接nfs的通常称之为nfs client
配置nfs server端:
1.在/etc/exports文件中增加一条要分享目录的分享属性例如:

 /opt/picture 192.168.0.*(rw,sync,no_root_squash)


把本机/home/work目录共享给192.168.0.*IP段内的机器,有读写权限
2 /etc/rc.d/init.d/portmap start 启动端口映射
3 /etc/rc.d/init.d/nfs start 启动nfs
配置nfs客户端:
很简直,像用正常磁盘一样挂载就行了

 mount –t nfs 192.168.0.20:/opt/picture /mnt


运行上面的指令后客户端就可以直接用/mnt文件夹访问nfs server上的/opt/picture文件夹了
原创文章,转载请注明: 转载自三叶草

--转自 北京联动北方科技有限公司




赞(0)    操作        顶端 
总帖数
1
每页帖数
101/1页1
返回列表
发新帖子
请输入验证码: 点击刷新验证码
您需要登录后才可以回帖 登录 | 注册
技术讨论