Rootop 服务器运维与web架构

2014-09-16
发表者 Venus
Unable to load dynamic library ‘/usr/lib64/php/modules/pdo_mysql.so’ – /usr/lib64/php/modules/pdo_mysql.so: undefined symbol: php_pdo_int64_to_str in Unknown on line 0已关闭评论

Unable to load dynamic library ‘/usr/lib64/php/modules/pdo_mysql.so’ – /usr/lib64/php/modules/pdo_mysql.so: undefined symbol: php_pdo_int64_to_str in Unknown on line 0

日志报错信息:

PHP Warning: PHP Startup: Unable to load dynamic library ‘/usr/lib64/php/modules/pdo_mysql.so’ – /usr/lib64/php/modules/pdo_mysql.so: undefined symbol: php_pdo_int64_to_str in Unknown on line 0

提示pdo_mysql.so无法正儿八经加载。

解决方法:

之前的配置人员安装了php的pdo_mysql模块,在/etc/php.ini中配置加载参数(常规思路都是需要手动配置加载的):

[pdo_mysql]
extension=/usr/lib64/php/modules/pdo_mysql.so

其实在php安装模块的时候会自动将配置文件写入到 /etc/php.d/ 下。

所以不需要配置加载,并且php加载模块好像有顺序,所以屏蔽 /etc/php.ini 中加载的 pdo_mysql 配置参数即可。

2014-09-15
发表者 Venus
apache2.4基于域名的虚拟主机已关闭评论

apache2.4基于域名的虚拟主机

Apache 2.4 官网手册:http://httpd.apache.org/docs/2.4/

今天在rhel7下配置lamp,不过这里的m代表mariadb了。需要配置apache的虚拟主机。apache2.4中虚拟主机的配置基本和2.2一样。

apache 2.4主配置文件中去掉了 NameVirtualHost *:80配置参数,默认加了一行

IncludeOptional 参数,在2.2中为Include conf.d/*.conf

# Load config files in the "/etc/httpd/conf.d" directory, if any.
IncludeOptional conf.d/*.conf

所以直接在 /etc/httpd/conf.d/ 创建一个vhost_qdsop.com.conf (以.conf 结尾的配置文件)。

其中配置文件的参数还和以前一样:

<VirtualHost *:80>
DocumentRoot /var/www/html/www
DirectoryIndex index.php index.html
ServerName www.qdsop.com
ErrorLog "|/usr/sbin/rotatelogs /var/log/httpd/www/error/%Y%m%d_error_log 86400 480"
CustomLog "|/usr/sbin/rotatelogs /var/log/httpd/www/access/%Y%m%d_access_log 86400 480" common
</VirtualHost>

如果你要调试虚拟主机配置,你会发现 Apache 的命令行参数 -S 非常有用。即输入以下命令:
/usr/local/apache2/bin/httpd -S
这个命令将会显示 Apache 是如何解析配置文件的。

附yum安装lamp:

[root@rhel7 ~]# yum install -y httpd php php-mysql php-gd php-mbstring mariadb mariadb-server
[root@rhel7 ~]# systemctl start httpd    #启动服务
[root@rhel7 ~]# systemctl enable httpd #开机启动
[root@rhel7 ~]# systemctl start mariadb
[root@rhel7 ~]# systemctl enable mariadb

rhel7 默认用firewalld作为防火墙,关闭切换到iptables
[root@rhel7 ~]# systemctl stop firewalld
[root@rhel7 ~]# systemctl disable firewalld

2014-09-11
发表者 Venus
配置apache支持泛域名访问已关闭评论

配置apache支持泛域名访问

之前配置Apache支持虚拟主机都是通过每个域名都有自己的配置文件,通过<VirtualHost></VirtualHost>实现。
最近发现可以通过rewrite规则实现。这种方法貌似不太常用。

只需要一个配置文件,每个虚拟主机配置一行即可实现,非常方便。个人认为不太推荐这种方式。
修改主配置文件:
/etc/httpd/conf/httpd.conf
在最后一行添加如下部分:

RewriteEngine on
RewriteMap lowercase int:tolower
RewriteMap vhost txt:/etc/httpd/conf.d/vhost.map
RewriteCond ${lowercase:%{SERVER_NAME}} ^(.+)$
RewriteCond ${vhost:%1} ^(/.*)$
RewriteRule ^/(.*)$ %1/$1

创建 /etc/httpd/conf.d/vhost.map 文件,内容为:
www.qdsop.com /var/www/html/www
bbs.qdsop.com    /var/www/html/bbs

一个域名对应一个目录。重启apache。

在dns后台中添加泛解析记录:

主机名为”*”,类型为”A”,指向服务器IP。


这样就可以通过www.qdsop.com和bbs.qdsop.com访问不同的页面了。

2014-09-10
发表者 Venus
试用Comodo科摩多ssl证书已关闭评论

试用Comodo科摩多ssl证书

最近测试ssl证书,看到comodo有活动,免费90天试用,不确定活动会做多久。


第一步:粘贴CSR请求信息:
生成密钥:
[root@talk a]# openssl genrsa -out server.key 2048
生成证书签名请求csr:
[root@talk a]# openssl req -new -key server.key -out server.csr
Country Name (2 letter code) [XX]:CN
State or Province Name (full name) []:SHANDONG
Locality Name (eg, city) [Default City]:QINGDAO
Organization Name (eg, company) [Default Company Ltd]:ROOTOP COMPUTER
Organizational Unit Name (eg, section) []:IT CENTER
Common Name (eg, your name or your server’s hostname) []:www.rootop.org
Email Address []:xxx@qq.com

Please enter the following ‘extra’ attributes
to be sent with your certificate request
A challenge password []: //这里直接回车跳过
An optional company name []: //回车跳过

根据提示填写相关信息,下一步。

通过whois信息,自动发现我当时注册留的qq邮箱,comodo会往此邮箱发送一个“validation code”,点击继续,下一步。

填写红色部分,填写信息略过。

协议之类,勾选,继续下一步。

这个地方,就是填写 validation code ,邮箱收到验证码需要一段时间。收到以后填写进去,点击下一步。然后再继续等待证书颁发至邮箱。

下载附件。其中里面有4个文件。

nginx安装证书:

comodo官网参考步骤:https://support.comodo.com/index.php?/Default/Knowledgebase/Article/View/789/37/certificate-installation-nginx

合并证书:

[root@Rootop ~]# cat www_rootop_org.crt COMODORSAAddTrustCA.crt COMODORSADomainValidationSecureServerCA.crt AddTrustExternalCARoot.crt > ssl-bundle.crt

nginx加载:

server
        {
                listen      80;
                listen 443;
                ssl on;
                ssl_certificate /root/cert/ssl-bundle.crt;
                ssl_certificate_key /root/cert/server.key;
                server_name www.rootop.org; 以下内容略过

重启nginx测试。


 

 

2014-09-09
发表者 Venus
利用ejabberd搭建基于Jabber/XMPP协议的即时通讯服务器已关闭评论

利用ejabberd搭建基于Jabber/XMPP协议的即时通讯服务器

ejabberd是基于Jabber/XMPP协议的即时通讯服务器,由GPLv2授权(免费和开放源码),采用Erlang/OTP开发。它的特点是,跨平台,容错,集群和模块化。
Ejabberd目前是可扩展性最好的一种Jabber/XMPP服务器,支持分布多个服务器,并且具有容错处理,单台服务器失效不影响整个cluster运作。
当前最新版本为:ejabberd 14.07
官方网站:http://www.process-one.net
当前版本下载地址:http://www.process-one.net/downloads/downloads-action.php?file=/ejabberd/14.07/ejabberd-14.07-linux-x86_64-installer.run

下载的名称比较乱,改一下。
[root@talk ~]# mv downloads-action.php\?file\=%2Fejabberd%2F14.07%2Fejabberd-14.07-linux-x86_64-installer.run ejabberd-14.07-linux-x86_64-installer.run
添加执行权限:
[root@talk ~]# chmod 777 ejabberd-14.07-linux-x86_64-installer.run
安装:
[root@talk ~]# ./ejabberd-14.07-linux-x86_64-installer.run
支持中文,在执行安装时选择6即可,需要注意的部分有两个,一是填写ejabberd服务器域名,要么是可解析的域名,要么直接写ip,另一个是添加管理员账户。
默认安装路径为:/opt/ejabberd-14.07 ,可以自定义。根据提示完成即可。

启动服务:

[root@Rootop ~]# /usr/local/ejabberd-14.07/bin/ejabberdctl start
[root@Rootop ~]# lsof -i:5280
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
beam 31603 root 19u IPv4 2367095 0t0 TCP *:xmpp-bosh (LISTEN)

ejabberd配置界面:
http://IP:5280/admin/ ,输入刚才创建的管理员账户及密码比如:admin@42.62.73.252 ,密码 admin000 登陆。

虚拟主机就是创建的域,在此域下可以创建用户,用于用户登陆。比较简单。这里创建了user1和user2两个用户。

windows下使用ejabberd:

下载pidgin,支持xmpp协议。

PIDGIN客户端下载:http://dlsw.baidu.com/sw-search-sp/soft/15/15304/pidgin-2.10.9.365337268.exe

根据截图配置一下,即可登陆。这里ejabberd可以配合使用mysql作为用户身份验证,这里还没列出,有时间补上。