阿里云ECS安装wordpress全过程及优化细节

一.安装mysql数据库
1.sudo apt-get update
2.sudo apt-get mysql-server mysql-client //安装mysql-server和mysql-client
中途需要设定mysql跟用户的密码,默认安装在/etc目录下
3.service mysql stop //停止mysql服务
service mysql start //开始运行mysql服务
4.mysql -u root -p //输入mysql中root用户的密码登陆mysql
5.更改root用户的密码
5.1 use mysql;
5.2 update user set Password = PASSWORD(‘1111’) where User = ‘root’;
一定要记住安装mysql时设置的root用户的密码,Ubuntu 14.04系统的root用户和mysql中的root用户不是同一个用户。
查看和设置mysql运行端口号:在/etc/mysql/my.cnf文件中看到port = 3306,可以修改成其他端口号
修改默认字符集:”
1.登入mysql的root用户
2.show variables like ‘%character%’;
若不是默认utf-8,修改下
1.退出mysql环境
2.修改mysql的配置文件,在mysql下的my.cnf,在[mysqld] 下面添加两行
character-set-server = utf8
init_connect=’SET NAMES utf8′
3.重启mysql
sudo service mysql restart
创建个新的用户
1.create user ‘username’@‘localhost’ identified by ‘password’;
或者insert into mysql.user(Host, User, Password) values(‘localhost’, ‘username’, ‘password’);
2. flush privileges; //刷新权限
创建一个数据库
1.create database user;
在数据库user中创建表:
1.use user;
2.create table users
(user_name varchar(32) not null,
password varchar(41) not null,
register_date timestamp not null default current_timestamp,
mail varchar(41),
id int unsigned auto_increment primary key);
为新创建的用户授予权限(对user数据库下的所有表具有增查改的权限)
1.grant insert, select, update on user.* to ‘iaccepted’@’localhost’;
然后可以将root用户退出,登陆iaccepted用户进行验证
1.exit
2.mysql -u root -p
3.use user; //使用user数据库
4.show tables;//显示user数据库下所有的表
6.desc users; //显示users表的结构
5.select * from users;
删除一张表中的所有数据:truncate table table_name;


二.安装nginx
1. 为了确保能在 Nginx 中使用正则表达式进行更灵活的配置,安装之前需要确定系统是否安装有 PCRE(Perl Compatible Regular Expressions)包
apt-get install libpcre2 libpcre3-dev
2.如果支持https的话加上
apt-get install libssl-dev
apt-get install openssl
2. 下载nginx最新版本
最新稳定版本是多少可以去nginx官网去查一下:http://nginx.org/download/
看到最新版之后可以直接用wget命令将最新版下载到本地
如:本文写时最新版为1.8.0
wget http://nginx.org/download/nginx-1.8.0.tar.gz
3.解压
tar zxvf nginx-1.8.0.tar.gz 之后进入nginx-1.8.0
4.执行configure
./configure –prefix=/usr/local/nginx –with-poll_module –with-http_stub_status_module
prefix指定安装路径nginx会被安装到/usr/local/sbin目录下,后面是要加载的模块
5.编译
make
6.编译完成之后安装
make install
7.启动nginx
进入安装目录下的sbin直接执行程序nginx即可(/usr/local/nginx/sbin/)
./nginx
停止 ./nginx -s stop


三.安装php环境
前面已经完成了mysql + nginx,因为wordpress是php开发的,所以如果想要安装wordpress,就需要安装php环境
在这之前先简单介绍一下几个概念,当然只是为了搭建环境的话,可以直接略过这些概念,直接进行下面的步骤。
* CGI(common gateway interface), HTTP服务器与你的或者其他机器上的程序进行通话的一种工具,其
程序需要运行在网络服务器上。
* FastCGI像是一个常驻型的CGI,他可以一直执行着,只要激活后,不会每次都要花费时间去fork一次。它还支持分布式的运算
即FastCGI程序可以在网站服务器意外的诸暨上执行并且接受来自其他网站服务器发来的请求。
* PHP5-CGI 和 PHP5-FPM两个模块
* PHP-CGI就是PHP自带的FastCGI管理器。
* PHP-FPM是一个PHP FastCGI管理器,使用PHP-FPM来控制PHP-CGI的FastCGI进程。PHP-FPM其实是PHP
源代码的一个补丁,旨在将FastCGI进程管理整合进PHP包中。
1.sudo apt-get install php5 php5-cgi php5-fpm php5-mysql
2.netstat -tunpl | grep 9000 //就能查看到php-fpm进程正在监听9000端口
如果这时并没有9000端口被监听的话,一般是由于默认的php-fpm监听设置的不是监听这个端口而是监听一个sock,
这时候可以查看/etc/php5/fpm/pool.d/www.conf,里面的listen = /var/run/php5-fpm.sock,把这句话
改成listen=9000,从而让他监听9000端口。
3.sudo service php5-fpm restart //重启php5-fpm
另外关闭和启动命令是:service php5-fpm stop service php5-fpm start
4.netstat -tunpl | grep 9000 //这时就能看到php5-fpm正在监听9000进程
这时候php环境就搭建完了。
接下来我们通过配置nginx的转发来检验刚刚完成的php环境。
4.1.location / { //会匹配任何请求
root html;
index index.php index.html index.htm;
}
4.2.location ~ .php$ {
root html;
include fastcgi_params;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
}
这里注意一下,修改成$document_root$fastcgi_script_name,默认的路径/scripts$fastcgi_script_name
一般没有这个文件就会找不到而报404错误。
4.3. ./nginx -s reload //重新加载nginx
4.4. 在nginx目录下的html中建一个index.php文件。
内容:
<?
phpinfo();
?>
5. 在浏览器中访问服务器地址就可以看到php页面了。


四. 安装wordpress
前面的nginx + mysql + php都配好的话,安装wordpress就相当简单了。
1.获得wordpress文件这里可以本地下载了然后通过ftp传到服务器,因为文件不大,所以可以直接在线获取
wget https://cn.wordpress.org/wordpress-4.3.1-zh_CN.tar.gz //版本号的话可以直接登录wordpress官网查看最新版本
2.解压 tar zxvf wordpress-4.2.1-zh_CN.tar.gz
3.将解压完成的wordpress文件夹mv到你的web根目录下(这里主要是放在nginx目录下),并改成自己想要的名字
比如改成iaccepted.net作为文件名,下面会用到这个文件名。
4.修改下wordpress的源代码,在wordpress/wp-includes/script-loader.php中查找到fonts.googleapi.com,然后
将其替换成fonts.useso.com,这里主要是为了提高wordpress的速度,因为google的服务在国内被墙了,所以访问
非常慢,甚至访问失败。
5.重新配置下nginx.conf,刚才的修改主要是为了验证php环境,现在要将root指向我们的网站。
5.1.location / { //会匹配任何请求
root iaccepted.net; //第三步中修改的文件名
index index.php index.html index.htm;
}
5.2.location ~ .php$ {
root iaccepted.net;//第三步中修改的文件名
include fastcgi_params;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
}
6.在浏览器中输入你服务器的域名就进入了wordpress的在线安装。
至此,wordpress安装完成。
6.1.设置wordpress文章评论中不能携带html,防止垃圾评论
在主题目录下的functions.php中加上过滤代码:(站根目录/wp-content/themes/twentyfifteen/functions.php,twentyfifteen是主题目录)
function ghz_comment_escape($incoming_comment) {
$incoming_comment = strip_tags($incoming_comment);
return ($incoming_comment);
}
add_filter(‘comment_text’, ‘ghz_comment_escape’);
add_filter(‘comment_text_rss’, ‘ghz_comment_escape’);
6.2.关闭wordpress文章版本功能
在wordpress目录下的wp-config.php中加入以下代码:
define(‘WP_POST_REVISION’, false);
6.3.从wordpress网站中移除不必要的meta-data,比如版本号之类的
在主题目录下的functions.php中加入如下代码
remove_action(‘wp_head’, ‘wp_generator’);
remove_action(‘wp_head’, ‘wlwmanifest_link’);
remove_action(‘wp_head’, ‘rsd_link’);
6.4.wordpress在进行登录时出现错误会给出详细信息,比如用户名不存在,若存在会提示密码不正确,这样不安全
修改,在主题目录下的functions.php中加入如下代码
function failed_login() {
return “用户名错误或者密码错误”;
}
add_filter(‘login_errors’, ‘failed_login’);
6.5.停用wordpress的链接猜测功能
在主题目录下的functions.php中加入如下代码
function stop_guessing($url) {
if (is_404())return false;
return $url;
}
add_filter(‘redirect_canonical’, ‘stop_guessing’);
6.6.优化wordpress的固定链接结构,使得更有利于SEO
6.6.1.首先要设置nginx具有rewrite功能,在nginx.conf的server下添加如下内容
if (-f $request_filename/index.html){
rewrite (.*) $1/index.html break;
}
if (-f $request_filename/index.php){
rewrite (.*) $1/index.php;
}
if (!-f $request_filename){
rewrite (.*) /index.php;
}
重新加载nginx ./nginx -s reload
6.6.2.在wordpress的控制面板里控制台的设定->固定链接设置来变更,选择自定义:
然后填写 /%category%/%postname%
现在在访问文章,地址就变了
7.去掉底部wordpress.org链接
修改当前主题下footer.php

<div class=”site-info”>
<?php do_action( ‘twentytwelve_credits’ ); ?>
<a href=”<?php echo esc_url( __( ‘http://wordpress.org/’, ‘twentytwelve’ ) ); ?>” rel=”nofollow” title=”<?php esc_attr_e( ‘Semantic Personal Publishing Platform’, ‘twentytwelve’ ); ?>”><?php printf( __( ‘Proudly powered by %s’, ‘twentytwelve’ ), ‘WordPress’ ); ?></a>
</div><!– .site-info –>
这段标签代码删掉
8.去掉功能菜单中wordpress.org
修改wp-includes下面default-widgets.php
删掉
echo apply_filters( ‘widget_meta_poweredby’, sprintf(‘<li><a href=”%s” title=”%s”>%s</a></li>’,
esc_url(__(‘https://wordpress.org/’)),
esc_attr__(‘Powered by WordPress, state-of-the-art semantic personal publishing platform.’),
_x(‘WordPress.org’, ‘meta widget link text’)
));
9.去掉后台左上角关于wordpress
在主题菜单下添加
function remove_logo($wp_toolbar) {
$wp_toolbar->remove_node(‘wp-logo’); //去掉Wordpress LOGO
}
add_action(‘admin_bar_menu’, ‘remove_logo’, 999);
function my_more_link($link){
$link = preg_replace(‘/#more-\d+/i’, ”, $link);
$link = preg_replace(‘/href=[\’|\”](\S+)[\’|\”]/i’, ‘href=”${1}” target=”_blank”‘ , $link);
return $link;
}
add_filter(‘the_content_more_link’,’my_more_link’);
10.禁掉所有文档的修订版本
add_filter( ‘wp_revisions_to_keep’, ‘specs_wp_revisions_to_keep’, 10, 2 );
function specs_wp_revisions_to_keep( $num, $post ) {
return 0;
}
11.禁掉自动保存功能
add_action(‘wp_print_scripts’,’disable_autosave’);
function disable_autosave(){
wp_deregister_script(‘autosave’);
}


五. 这么一台服务器,只运行一个个人空间太浪费了,所以我决定在用剩余的空间搭一个app的服务端,这个样就可以
进行移动端开发。本人对服务器程序一般用j2ee开发,所以决定搭建一个tomcat服务器。
1.获取tomcat安装文件。
2.解压到/usr/local目录下
3.在/etc/profile文件中加入tomcat的环境变量。
vim /etc/profile
在文件最后加入CATALINA_HOME=/user/local/tomcat8080:/usr/local/tomcat8090
这里只需要加入自己的tomcat文件的路径即可,我这里主要是用到两台tomcat服务器做负载均衡,所以这里有两个路径
4.配置nginx
在刚才加入了php支持的基础上,我们在加入一条匹配规则,是nginx也能同时正常转发.jsp .do之类的请求给tomcat服务器
upstream tomcatServer{
server localhost:8080;
server localhost:8090;
}
在server中加入一条location来匹配所有.jsp .do请求
location ~* \.(do|jsp) {
proxy_pass http://tomcatServer;
}
5.将java web网站部署在tomcat的webapps文件夹下,改名为ROOT即可,这样就可以在浏览器中通过
你的域名/index.jsp访问你的jsp项目了。这里我在自己的网站下做了实例,大家可以试下
http://iaccepted.net/index.jsp

本文遵从CC3.0协议转载请注明:转自凌风技术站

本文标题:阿里云ECS安装wordpress全过程及优化细节

本文链接地址:http://www.iaccepted.net/web/2.html

相关文章



发表评论

电子邮件地址不会被公开。 必填项已用*标注