挂在外置硬盘 (参考链接:https://help.aliyun.com/knowledge_detail/6554784.html)
fdisk -l
mkfs.ext3 /dev/vdb
mkdir /data
mount /dev/vdb /data
ls -l /data
df -h
echo "/dev/vdb /data ext3 defaults 1 2" >> /etc/fstab
创建目录
cd /
mkdir data
cd data
mkdir download
mkdir software
mkdir web
安装依赖文件
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
wget http://blog.zyan.cc/soft/linux/nginx_php/libiconv/libiconv-1.13.1.tar.gz
wget http://blog.zyan.cc/soft/linux/nginx_php/mcrypt/libmcrypt-2.5.8.tar.gz
wget http://blog.zyan.cc/soft/linux/nginx_php/mcrypt/mcrypt-2.6.8.tar.gz
wget http://blog.zyan.cc/soft/linux/nginx_php/memcache/memcache-2.2.5.tgz
wget http://blog.zyan.cc/soft/linux/nginx_php/mhash/mhash-0.9.9.9.tar.gz
wget http://blog.zyan.cc/soft/linux/nginx_php/pcre/pcre-8.10.tar.gz
wget http://blog.zyan.cc/soft/linux/nginx_php/eaccelerator/eaccelerator-0.9.6.1.tar.bz2
wget http://blog.zyan.cc/soft/linux/nginx_php/pdo/PDO_MYSQL-1.0.2.tgz
tar zxvf libiconv-1.13.1.tar.gz
cd libiconv-1.13.1/
./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
ln -s /usr/local/bin/libmcrypt-config /usr/bin/libmcrypt-config
tar zxvf mcrypt-2.6.8.tar.gz
cd mcrypt-2.6.8/
/sbin/ldconfig
./configure
make
make install
cd ../
下载安装包
cd download
wget http://nginx.org/download/nginx-1.10.0.tar.gz
wget http://cn2.php.net/get/php-7.0.7.tar.gz/from/this/mirror
tar -zxvf nginx-1.10.0.tar.gz
tar -zxvf mirror
编译PHP
cd php-7.0.7/
./configure --prefix=/data/software/php --with-iconv-dir=/usr/local --with-freetype-dir --with-jpeg-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
报错
configure: error:Cannot find ldap librariesin/usr/lib.
解决方法cp -frp /usr/lib64/libldap* /usr/lib/
重新编译
警告
configure: WARNING: unrecognized options: --enable-discard-path, --enable-safe-mode, --with-curlwrappers, --enable-fastcgi, --enable-force-cgi-redirect
原因
--enable-discard-path, --enable-safe-mode 在5.3后已经被取消
--enable-fastcgi 5.3开始默认开启
编译时可以 #./configure --help | grep “safe-mode” 查看一下,没有信息输出,表示已经不支持
./configure --prefix=/data/software/php --with-iconv-dir=/usr/local --with-freetype-dir --with-jpeg-dir --with-png-dir --with-zlib --with-libxml-dir=/usr --enable-xml --disable-rpath --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
make
报错:
undefined reference to `libiconv_open
編輯 Makefile :
EXTRA_LIBS = ..... -lcrypt
在最後加上 -liconv,例如:
EXTRA_LIBS = ..... -lcrypt -liconv
make
报错:
undefined reference to symbol 'ber_strdup'
編輯 Makefile :
EXTRA_LIBS = ..... -lcrypt
在最後加上 -llber
make
make install
安装Nginx
tar zxvf pcre-8.10.tar.gz
cd pcre-8.10/
./configure
make && make install
cd ../
cd /data/download/nginx-1.10.0
./configure --user=apache --group=apache --prefix=/data/software/nginx --with-http_stub_status_module --with-http_ssl_module
make && make install
cd ../
创建日志目录
mkdir -p /data/software/log
chmod +w /data/software/log
chown -R www:www /data/software/log
从251服务器复制nginx配置文件
运行nginx -t 报错
报错行内容
image_filter resize $h $w;
原因
HttpImageFilterModule用来裁剪过大的图片到指定大小,是nginx自带模块,默认不会开启
开启HttpImageFilterModule需要在编译要带上参数 --with-http_image_filter_module
附带链接
http://www.open-open.com/lib/view/open1416193847945.html
重新编译安装Nginx
cd /data/download/nginx-1.10.0
./configure --user=apache --group=apache --prefix=/data/software/nginx --with-http_stub_status_module --with-http_ssl_module--with-http_image_filter_module
报错
./configure: error: the HTTP image filter module requires the GD library.
You can either do not enable the module or install the libraries.
安装GD库
yum install php-gd*
yum install gd-devel
cd /data/download/nginx-1.10.0
./configure --user=apache --group=apache --prefix=/data/software/nginx --with-http_stub_status_module --with-http_ssl_module--with-http_image_filter_module
make && make install
cd ../
从251服务器复制nginx配置文件
运行nginx -t 报错
nginx: [emerg] unknown directive "image_filter_crop_offset"
原因:
没有安装ngx_http_image_filter_module
暂未处理
注释配置文件中的 image_filter_crop_offset
运行NGINX
配置php
cd /data/software/php/etc/
cp php-fpm.conf.default php-fpm.conf
按照251服务器修改php-fpm.conf
cd php-fpm.d
cp www.conf.default www.conf
启动 php
/data/software/php/sbin/php-fpm -t //测试运行通过
/data/software/php/sbin/php-fpm (-c 可选择导入配置文件)
配置php命令
vi /etc/profile 在文件末尾加上如下两行代码
PATH=$PATH:/usr/local/webserver/php/bin:/usr/local/webserver/mysql/bin
export PATH
最后:执行 命令source /etc/profile或 执行点命令 ./profile使其修改生效,执行完可通过echo $PATH命令查看是否添加成功。
修复Nginx报错
nginx: [emerg] unknown directive "image_filter_crop_offset"
用外部ngx_http_image_filter_module.c模块替换原有模块文件编译
下载地址 :https://github.com/bobrik/nginx_image_filter
把下载的文件替换 /data/download/nginx-1.10.0/src/http/modules/ngx_http_image_filter_module.c
重新编译nginx
./configure --user=apache --group=apache --prefix=/data/software/nginx --with-http_stub_status_module --with-http_ssl_module--with-http_image_filter_module
make && make install
运行/data/software/nginx/sbin/nginx -t
无报错,启动NGINX
成功
20160602
php未支持pdo
参考资料:http://www.cnblogs.com/onlyfu/p/5051389.html
重新编译
./configure --prefix=/data/software/php --with-iconv-dir=/usr/local --with-freetype-dir --with-jpeg-dir --with-png-dir --with-zlib --with-libxml-dir=/usr --enable-xml --disable-rpath --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 --enable-mysqlnd --with-mysqli=mysqlnd --with-pdo-mysql=mysqlnd
P.S. 带上了参数 --enable-mysqlnd --with-mysqli=mysqlnd --with-pdo-mysql=mysqlnd
php7相比5修改了对mysql的支持
編輯 Makefile :
EXTRA_LIBS = ..... -lcrypt
在最後加上 -liconv,例如:
EXTRA_LIBS = ..... -lcrypt -liconv
make
make install
重启php-fpm
P.S. /var/run/php-fpm/php-fpm.pid` 这个是php-fpm.conf中pid的地址
kill -USR2 `cat /var/run/php-fpm/php-fpm.pid`
安装memcache&mamcached
Memcache是该系统的项目名称,Memcached是该系统的主程序文件(字母d可以理解为daemon),以守护程序方式运行于服务器中,随时接受客户端的连接操作,使用共享内存存取数据。
1、编译Memcache (原生的Memcache 3.08版无法在PHP7下编译,故选用Github的pecl-memcache分支版本。)
https://github.com/websupport-sk/pecl-memcache/archive/php7.zip # FTP上传
cd pecl-memcache
export PHP_PREFIX="/usr/local"
$PHP_PREFIX/php70/bin/phpize
./configure --with-php-config=$PHP_PREFIX/php70/bin/php-config
make && make install
2、修改php.ini文件,加载Memcache组件。
[memcache]
extension_dir = "/usr/local/php70/lib/php/extensions/no-debug-non-zts-20151012/"
extension = "memcache.so"
DirectAdmin中php.ini的文件位置:
/usr/local/lib/php.ini # 默认的PHP版本。
/usr/local/php70/lib/php.ini # 以FASTCGI模式运行PHP7。
3、重启Apache
service httpd restart
4、配置Memcached的步骤,首先安装Libevent事件触发管理器。
wget https://github.com/downloads/libevent/libevent/libevent-2.0.21-stable.tar.gz
tar vxf libevent-2.0.21-stable.tar.gz
cd libevent-2.0.21-stable
./configure -prefix=/usr/local/libevent # ./configure
make && make install
yum install libevent-devel # Centos可以直接运行安装。
5、编译Memcached
wget http://memcached.org/files/memcached-1.4.25.tar.gz
tar vxf memcached-1.4.25.tar.gz
cd memcached-1.4.25
./configure -with-libevent=/usr/local/libevent # ./configure
make && make install
6、启动Memcached
/usr/local/bin/memcached -d -m 128 -l 127.0.0.1 -p 11211 -u root # (128为内存, 11211为端口,root为用户组)
开机/重启后生效,编辑 /etc/rc.d/rc.local 文件,添加以下内容。
/usr/local/bin/memcached -d -m 128 -l 127.0.0.1 -p 11211 -u root
7、查看是否生效。
ps aux|grep memcached
如提示以下信息,则已生效。
root 2219 0.0 2.4 71608 25396 ? Ssl 05:38 0:01 /usr/local/bin/memcached -d -m 32 -l 127.0.0.1 -p 11211 -u root
root 13583 0.0 0.0 4476 732 pts/0 S+ 07:47 0:00 grep memcached
------------------------------2016.08.08 搭建redis更新(转自 http://www.cnblogs.com/_popc/p/3684835.html)--------------------------------------------------
希望将redis安装到此目录
1 /usr/local/redis
希望将安装包下载到此目录
1 /usr/local/src
那么安装过程指令如下:
1234567 $ mkdir /usr/local/redis
$ cd /usr/local/src
$ wget http:
//redis.googlecode.com/files/redis-2.6.14.tar.gz
$ tar xzf redis-2.6.14.tar.gz
$ ln -s redis-2.6.14 redis #建立一个链接
$ cd redis
$ make PREFIX=/usr/local/redis install #安装到指定目录中
注意上面的最后一行,我们通过PREFIX指定了安装的目录。如果make失败,一般是你们系统中还未安装gcc,那么可以通过yum安装:
1 yum install gcc
安装完成后,继续执行make.
在安装redis成功后,你将可以在/usr/local/redis看到一个bin的目录,里面包括了以下文件:
1 redis-benchmark redis-check-aof redis-check-dump redis-cli redis-server
第二部分:将redis做成一个服务
1.复制脚本到/etc/rc.d/init.d目录 ps: /etc/rc.d/init.d/目录下的脚本就类似与windows中的注册表,在系统启动的时候某些指定脚本将被执行 按以上步骤安装Redis时,其服务脚本位于:
1 /usr/local/src/redis/utils/redis_init_script
必须将其复制到/etc/rc.d/init.d的目录下:
1 cp /usr/local/src/redis/utils/redis_init_script /etc/rc.d/init.d/redis
将redis_init_script复制到/etc/rc.d/init.d/,同时易名为redis。
如果这时添加注册服务:
1 chkconfig --add redis
将报以下错误:
1 redis服务不支持chkconfig
为此,我们需要更改redis脚本。
2.更改redis脚本 打开使用vi打开脚本,查看脚本信息:
1 vim
/etc/rc.d/init.d/redis看到的内容如下(下内容是更改好的信息):
123456789101112131415161718192021222324252627282930313233343536373839404142 #!/bin/sh
#chkconfig: 2345 80 90
# Simple Redis init.d script conceived to work on Linux systems
# as it does use of the /proc filesystem.
REDISPORT=6379
EXEC=/usr/local/redis/bin/redis-server
CLIEXEC=/usr/local/redis/bin/redis-cli
PIDFILE=/var/run/redis_${REDISPORT}.pid
CONF=
"/etc/redis/${REDISPORT}.conf"
case
"$1"
in
start)
if
[ -f $PIDFILE ]
then
echo
"$PIDFILE exists, process is already running or crashed"
else
echo
"Starting Redis server..."
$EXEC $CONF &
fi
;;
stop)
if
[ ! -f $PIDFILE ]
then
echo
"$PIDFILE does not exist, process is not running"
else
PID=$(cat $PIDFILE)
echo
"Stopping ..."
$CLIEXEC -p $REDISPORT shutdown
while
[ -x /proc/${PID} ]
do
echo
"Waiting for Redis to shutdown ..."
sleep 1
done
echo
"Redis stopped"
fi
;;
*)
echo
"Please use start or stop as first argument"
;;
esac
和原配置文件相比:
1.原文件是没有以下第2行的内容的,
1 #chkconfig: 2345 80 90
2.原文件EXEC、CLIEXEC参数,也是有所更改。
12 EXEC=/usr/local/redis/bin/redis-server
CLIEXEC=/usr/local/redis/bin/redis-cli
3.redis开启的命令,以后台运行的方式执行。
1 $EXEC $CONF &
ps:注意后面的那个“&”,即是将服务转到后面运行的意思,否则启动服务时,Redis服务将
占据在前台,占用了主用户界面,造成其它的命令执行不了。 4.将redis配置文件拷贝到/etc/redis/${REDISPORT}.conf
12 mkdir
/etc/rediscp /usr/local/src/redis/redis.conf /etc/redis/6379.conf
这样,redis服务脚本指定的CONF就存在了。默认情况下,Redis未启用认证,可以通过开启6379.conf的requirepass 指定一个验证密码。
以上操作完成后,即可注册yedis服务:
1 chkconfig --add redis
3.启动redis服务
1 service redis start
第三,将Redis的命令所在目录添加到系统参数PATH中
修改profile文件:
1 vi /etc/profile
在最后行追加:
1 export PATH=
"$PATH:/usr/local/redis/bin"
然后马上应用这个文件:
1 . /etc/profile
这样就可以直接调用redis-cli的命令了,如下所示:
123456 $ redis-cli
redis 127.0.0.1:6379> auth superman
OK
redis 127.0.0.1:6379> ping
PONG
redis 127.0.0.1:6379>
至此,redis 就成功安装了。
总结下:在linux系统中安装redis,或多或少都能碰到一些问题。在此次安装中3个大部分, 1.下载,安装,这里使用到wget命令,make命令,我不太懂make命令的使用,而且一直担心make命令如何安装到指定目录下, 此次终于明白了。 2.如何将一个程序添加到服务,当然也对/etc/rc.d/init.d这个文件有所了解。 3.如何将一个程序的一些命令添加到系统参数中,直接输入命令就能达到对某个程序的操作。 其实就是指定好环境变量。 下篇简单使用jedis来对redis进行存取。
------------------------------------------------------------------------安装phpredis扩展(转自 http://www.yiichina.com/tutorial/550)---------------------------------------------------
tar zxvf redis-2.2.7.tgz
cd redis-2.2.7
/data/software/php/bin/phpize
./configure
报错:configure: error: Cannot find php-config. Please use --with-php-config=PATH
解决方法 sudo ./configure --with-php-config=/data/software/php/bin/php-config
make
报错:redis.c:7547: error: ‘smart_str’ has no member named ‘c’
原因:php7 不用这个拓展包
解决方案转自(http://www.cnblogs.com/GaZeon/p/5422078.html)
重新下载
wget https://codeload.github.com/phpredis/phpredis/zip/php7
unzip php7
cd phpredis-php7
/data/software/php/bin/phpize
./configure --with-php-config=/data/software/php/bin/php-config
make && make install
将extension=redis.so加入到php.ini
重启php-fpm