閱讀155 返回首頁    go 阿裏雲 go 技術社區[雲棲]


virtualbox centos7虛擬機安裝 lamp(apache + mysql5.5+php5.5+redis)

一、虛擬機安裝注意事項

兩種上網方式

局域網無法配置ip情況,
用兩塊網卡

網絡地址轉換(net)

僅主機(Host-only)適配器 選擇虛擬機網卡

如果沒有虛擬機網卡,可以在全局設定裏添加和配置

局域網可以配置ip情況
用一塊網卡

橋接網卡,選擇宿主機網卡

二、配置ip

先用ip addr 命令查看網卡和ip

如果沒有ip地址用nmtui 命令配置

配置完成後/etc/init.d/network restart 重啟網絡

ping www.baidu.com 是否連通,沒有重啟係統

或者 vi /etc/sysconfig/network-scripts/ifcfg-xxx xxx表示具體網卡

注意要設置為網卡開機自動啟動

三、添加remi、epel、mysql源

yum localinstall https://mirror.innosol.asia/remi/enterprise/remi-release-7.rpm -y

yum localinstall https://dev.mysql.com/get/mysql-community-release-el7-5.noarch.rpm -y

cd /etc/yum.repos.d/

vi remi.repo 修改下麵兩項

[remi]

enabled=1

[remi-php]

enabled=1

vi mysql-community.repo 修改下麵兩項

[mysql55-community]

enabled=1

[mysql56-community]

enabled=0

安裝Apache
yum -y install httpd httpd-manual mod_ssl mod_perl mod_auth_mysql

vi /etc/httpd/conf/httpd.conf

Options Indexes FollowSymLinks #144行 修改為:Option FollowSymLinks(禁止列出目錄)

AllowOverride None  # 151行 修改為:AllowOverride All (允許.htaccess)

DirectoryIndex index.html # 164行 修改為:DirectoryIndex index.html index.htm Default.html Default.htm index.php(設置默認首頁文件,增加index.php)

MaxKeepAliveRequests 500 #120行添加MaxKeepAliveRequests 500 (增加同時連接數)

SetEnv APP_ENV local #145行 添加環境變量

systemctl start httpd.service #啟動

systemctl enable httpd.service #開機自動啟動

chown apache:apache -R /var/www/html #設置文件夾屬組

apache運行自動生成access_log(訪問日誌)和error_log(錯誤日誌)兩種日誌文件,

centos使用yum方式安裝lamp環境的,日誌文件位置:

/var/log/httpd/access_log是Apache服務器的訪問日誌文件

/var/log/httpd/error_log是Apache服務器的錯誤日誌文件

如果把所有的訪問日誌都放在access_log,所有的錯誤日誌都放在error_log文件,

時間長了日誌文件會很大,影響apache速度,因此限製日誌文件大小是很有必要的。

打開apache的配置文件:vi /etc/httpd/conf/httpd.conf

編輯:

錯誤日誌

ErrorLog logs/error_log #注釋,加上下麵這行

ErrorLog “|rotatelogs /var/log/httpd/error_log%Y_%m_%d.log 86400 480” #每天生成錯誤日誌

訪問日誌

CustomLog logs/access_log common #注釋加上下麵這樣

CustomLog “|rotatelogs /var/log/httpd/access_log%Y_%m_%d.log 86400 480” common #每天生成訪問日誌

OK,重啟apache,你就可以看到新生成的日誌文件:

安裝php
yum -y install php php-mysql php-gd libjpeg* php-ldap php-odbc php-pear php-xml php-xmlrpc php-mbstring php-bcmath php-mhash php-devel libmcrypt libmcrypt-devel mhash php-imap php-pecl-memcached php-pecl-redis php-pecl-memcache php-mcrypt

yum -y install php-phalcon2

vi /etc/php.ini

date.timezone = PRC # 873行 把前麵的分號去掉,改為date.timezone = PRC

expose_php = Off # 366行 禁止顯示php版本的信息

short_open_tag = ON # 202行支持php短標簽

下麵兩項可以不用

disable_functions = passthru,exec,system,chroot,scandir,chgrp,chown,shell_exec,proc_open,proc_get_status,ini_alter,ini_alter,ini_restore,dl,openlog,syslog,readlink,symlink,popepassthru,stream_socket_server,escapeshellcmd,dll,popen,disk_free_space,checkdnsrr,checkdnsrr,getservbyname,getservbyport,disk_total_space,posix_ctermid,posix_get_last_error,posix_getcwd, posix_getegid,posix_geteuid,posix_getgid, posix_getgrgid,posix_getgrnam,posix_getgroups,posix_getlogin,posix_getpgid,posix_getpgrp,posix_getpid, posix_getppid,posix_getpwnam,posix_getpwuid, posix_getrlimit, posix_getsid,posix_getuid,posix_isatty, posix_kill,posix_mkfifo,posix_setegid,posix_seteuid,posix_setgid, posix_setpgid,posix_setsid,posix_setuid,posix_strerror,posix_times,posix_ttyname,posix_uname

列出PHP可以禁用的函數,如果某些程序需要用到這個函數,可以刪除,取消禁用。

open_basedir = .:/tmp/ #299行設置表示允許訪問當前目錄(即PHP腳本文件所在之目錄)和/tmp/目錄,可以防止php木馬跨站,如果改了之後安裝程序有問題(例如:織夢內容管理係統),可以注銷此行,或者直接寫上程序的目錄/data/www.osyunwei.com/:/tmp/

安裝php調試xdebug

yum install php-php-pecl-xdebug

vi /etc/php.d/xdebug.ini

; Enable xdebug extension module

; see https://xdebug.org/docs/all_settings

zend_extension=/usr/lib64/php/modules/xdebug.so

xdebug.remote_enable=1

xdebug.remote_autostart=1

xdebug.remote_port=9001 #端口

xdebug.remote_host=192.168.18.104 #遠程主機

xdebug.idekey=”caicai”#調試key

xdebug.remote_log=”/var/www/html/logs/xdebug.log”#log文件位置

安裝mysql、redis、memcache
檢測centos7係統自帶的mariadb並刪除

rpm -qa | grep mariadb 如果有再運行下麵的命令

rpm -e –nodeps mariadb-libs-5.5.37-1.el7_0.x86_64 注意版本換成上麵命令得到的版本

yum -y remove mariadb*

安裝mysql、redis、memcache ( redis 最新版本的需要手動安裝 安裝步驟在文檔結尾)

yum -y install mysql-server mysql mysql-devel memcached redis

運行mysql_secure_installation

回車,根據提示輸入Y(注意默認密碼是空)

輸入2次密碼,回車

根據提示一路輸入Y

最後出現:Thanks for using MySQL!

systemctl start mysqld.service #啟動

systemctl enable mysqld.service #開機自動啟動

配置mysql

1、允許遠程連接

查看 vi /etc/my.cnf

如果有bind-address = 127.0.0.1,則在前麵加#號注釋掉

輸入mysql -u root -p

use mysql;

mysql>GRANT ALL PRIVILEGES ON . TO ‘root’@’%’ IDENTIFIED BY ‘你的密碼’ WITH GRANT OPTION;

centos7環境如果上麵報錯的話,可以更新密碼如下:

mysql>update user set password=password('123456') where user='root';
操作完後切記執行以下命令刷新權限

FLUSH PRIVILEGES;

加快連接
vi /etc/my.cnf

在[mysqld]下麵新增一項 skip-name-resolve

[mysqld]

忘記密碼修改
/etc/init.d/mysqld stop

mysqld_safe –user=mysql –skip-grant-tables –skip-networking &

mysql -u root mysql

UPDATE user SET Password=PASSWORD(‘你的密碼’) where USER=’root’;

FLUSH PRIVILEGES;

配置redis

vi /etc/redis.conf

daemonize yes

systemctl enable redis.service

如果錯誤運行chkconfig redis on

systemctl start redis.service

配置memcache

systemctl disable memcached.service #關閉memcache開機自動啟動

如果提示錯誤運行 chkconfig memcached on,再運行systemctl disable memcached.service

cd /etc/sysconfig/

cp memcached memcached1

cp memcached memcached2

cp memcached memcached3

vi memcached1

修改port為11210

vi memcached2

修改port為11211

vi memcached3

修改port為11212

cd /usr/lib/systemd/system/

cp memcached.service memcached1.service

cp memcached.service memcached2.service

cp memcached.service memcached3.service

vi memcached1.service

修改EnvironmentFile=-/etc/sysconfig/memcached1

vi memcached2.service

修改EnvironmentFile=-/etc/sysconfig/memcached2

vi memcached2.service

修改EnvironmentFile=-/etc/sysconfig/memcached3

systemctl enable memcached1.service

systemctl enable memcached2.service

systemctl enable memcached3.service

systemctl start memcached1.service

systemctl start memcached2.service

systemctl start memcached3.service

關閉防火牆
1、修改/etc/selinux/config 文件

將SELINUX=enforcing改為SELINUX=disabled

重啟機器永久關閉

臨時關閉 運行 setenforce 0

/usr/sbin/sestatus -v 查看狀態

2、關閉firewall:

systemctl stop firewalld.service #停止firewall

systemctl disable firewalld.service #禁止firewall開機啟動

測試
cd /var/www/html

vi index.php #輸入下麵內容

<?php

phpinfo();

?>

rm -f /etc/httpd/conf.d/welcome.conf /var/www/error/noindex.html #刪除默認測試頁

systemctl restart httpd.service #重啟apache

vsftpd

安裝
yum -y install vsftpd

chkconfig vsftpd on #開機自動啟動

配置conf 采用虛擬用戶方式 (注意配置文件,不允許有多餘空格,換行符是linux格式)
主配置文件長達123行,但大部分是以#號開始的,這些都是注釋信息,我們可以過濾掉它們。
備份vsftpd的主配置文件:

mv /etc/vsftpd/vsftpd.conf /etc/vsftpd/vsftpd.conf_bak

過濾掉所有包含#號的行,並將過濾結果寫回到vsftpd.conf文件中:

grep -v “#” /etc/vsftpd/vsftpd.conf_bak > /etc/vsftpd/vsftpd.conf

vi /etc/vsftpd/vsftpd.conf

anonymous_enable=NO

local_umask=000

local_enable=YES

connect_from_port_20=YES

chroot_local_user=YES

chroot_list_file=/etc/vsftpd/chroot_list

allow_writeable_chroot=YES

pam_service_name=vsftpd

userlist_enable=YES

tcp_wrappers=YES

listen=YES

listen_ipv6=NO

guest_enable=YESvi

guest_username=ftp

user_config_dir=/etc/vsftpd/vuser_conf

創建chroot_list
cd /etc/vsftpd/

創建chroot_list文件,並把vftpd.conf配置文件中的guest_username(這裏是ftp)寫入即可

vi chroot_list

ftp

創建用戶密碼文件/etc/vsftpd/vuser_passwd.txt ,注意奇行是用戶名,偶行是密碼
生成虛擬用戶認證的db文件
db_load -T -t hash -f /etc/vsftpd/vuser_passwd.txt /etc/vsftpd/vuser_passwd.db

編輯認證文件/etc/pam.d/vsftpd
把注釋去掉,然後加上已下幾條

注:db=/etc/vsftpd/vuser_passwd 中的vuser_passwd 是你生成的虛擬用戶的db文件

查看係統版本號: getconf LONG_BIT

係統為32位:

auth required pam_userdb.so db=/etc/vsftpd/vuser_passwd account required pam_userdb.so db=/etc/vsftpd/vuser_passwd

係統為64位:

auth required /lib64/security/pam_userdb.so db=/etc/vsftpd/vuser_passwd account required /lib64/security/pam_userdb.so db=/etc/vsftpd/vuser_passwd

最終內容如下:

創建虛擬用戶配置文件
mkdir /etc/vsftpd/vuser_conf/

vi /etc/vsftpd/vuser_conf/kkk //文件名等於vuser_passwd.txt裏麵的賬戶名,否則下麵設置無效

設置虛擬用戶配置文件內容
anon_umask=000

local_root=/var/www/html

write_enable=YES

anon_world_readable_only=NO

anon_upload_enable=YES

anon_mkdir_write_enable=YES

anon_other_write_enable=YES

把ftp用戶加到apache組裏
usermod -a -G apache ftp

chmod -R 775 /var/www/html/

10、啟動vsftpd服務

systemctl restart vsftpd

打開selinux和防火牆
1、firewall

打開服務

firewall-cmd –add-service=http –permanent

firewall-cmd –add-service=https –permanent

firewall-cmd –add-service=ftp –permanent

firewall-cmd –add-service=ssh –permanent

firewall-cmd –add-service=mysql –permanent

firewall-cmd –add-port=3128/tcp –permanent

firewall-cmd –reload

firewall-cmd –list-all

打開端口命令firewall-cmd [–zone=] –add-port=[-]/ [–timeout=]

selinux 過於複雜,session和memcache有問題,放棄
vi /etc/selinux/config

SELINUX=disabled改為SELINUX=enforcing

重啟

setsebool -P ftp_home_dir=1

setsebool -P allow_ftpd_full_access=1

getsebool -a | grep http

setsebool -P httpd_anon_write 1

setsebool -P allow_httpd_full_access 1

setsebool -P httpd_can_network_memcache 1

setsebool -P httpd_can_network_connect_db 1

setsebool -P httpd_can_network_connect 1

setsebool -P httpd_can_network_relay 1

chcon -t tmp_t /var/www/html/app/cache

十一、雜項

composer

yum install nc phpunit php-php-cli

yum install deltarpm

mv /usr/bin/php /usr/bin/php.back

ln -s /usr/bin/php /usr/bin/php

curl -s https://getcomposer.org/installer | php

mv composer.phar /usr/bin/composer

composer config -g repositories.packagist composer https://packagist.phpcomposer.com

配置文件複製到phpcli的php.d文件夾中

yum whatprovides */ls

yum install mlocate

yum install nmap

yum install net-tools

cache_mem 128 MB

cache_dir ufs /var/spool/squid 1024 16 256

squid -k parse

列出目錄

Options Indexes FollowSymLinks

chown -R apache:apache /var/www

1) set up vsftpd for umask 0027 (/etc/vsftpd.conf) [local_umask=0027] 2) create www-users group (groupadd www-users) 3) add user to group (usermod -a -G group user) 4) Set apache to run as www-users group (httpd.conf) 5) chgrp www-users /var/www 6) chmod 2775 /var/www

chmod g+s /var/www/

curl -sS https://getcomposer.org/installer | php

curl -sS https://packagist.cn/composer/installer | php

php -r “readfile(‘https://packagist.cn/composer/installer’);” | php

composer config -g repositories.packagist composer https://packagist.phpcomposer.com

Indexes允許訪問目錄 刪掉 htacess 文件

svn使用samba服務器共享
目的是直接修改遠程服務器上的代碼,不需要再用ftp

Centos安裝 yum -y install samba samba-client samba-common
添加samba用戶smbpasswd -a root

輸入samba用戶密碼

開啟這個用戶smbpasswd -e root

修改samba配置 可以先備份一下 mv /etc/samba/smb.conf /etc/samba/smb.conf.bak

vi /etc/samba/smb.conf

[global]

workgroup=WORKGROUP

netbios name=centos

server string=Samba Server

delete readonly = yes

security = user

passdb backend = smbpasswd

[Share]

path=/var/www/html

valid users = root

writable = yes

read only = no

public = no

create mode = 0777

directory mode = 0777

修改html的權限為777 chmod -R 777 /var/www/html

global是全局配置,Share共享名,即其他機器上看到的文件夾名

Windows
在我的電腦上右鍵,

輸入自己的服務器ip地址

Svn checkout https://192.168.18.253/svn/apply/bokelong/server/popolo_develop_160112

注意要用根目錄

十三,Redis安裝配置

一,下載安裝編譯

wget https://download.redis.io/releases/redis-3.2.0.tar.gz

tar xzf redis-3.2.0.tar.gz

cd redis-3.2.0

make

make install

二,執行./utils/install_server.sh配置Redis配置之後Redis能隨係統啟動。

Redis服務查看、開啟、關閉

1、通過ps -ef|grep redis命令查看Redis進程;

2、開啟Redis服務操作通過/etc/init.d/redis_6379 start命令,也可通過(service redis_6379 start);

3、關閉Redis服務操作通過/etc/init.d/redis_6379 stop命令,也可通過(service redis_6379 stop);

systemctl status redis_6379

最後更新:2017-04-27 11:31:02

  上一篇:go phpStorm 10 斷點調試
  下一篇:go mysql索引的詳細介紹