ubuntu/debian下如何安装配置apache2+php+mysql+ssl

由于项目需要,又捡起了之前很久的老本行,安装配置AMP(Apache+Mysql+PHP),多少年不见,发展真快,或者是由于Ubuntu的配置方式和 其他Linux系统有些差别,竟然配置了几小时,仍不得要领,如配置VirtualHost怎么也不能生效,最后才发现,其实只是一些小错误,才致配置怎么也不能生效。

ubuntu中apache2的配置项中,基于debian的模式而来,其实注意以下几个重点即可:


一、安装apache2, php5, mysql, phpmyadmin

    apt-get install apache2
    apt-get install libapache2-mod-php5 php5 php5-curl php5-dev
    apt-get install mysql-server mysql-client
    
    apt-get install phpmyadmin



二、*-available和*-enabled目录的区别和联系:

    观察apache2.conf中
    ……
    IncludeOptional mods-enabled/*.load
    IncludeOptional mods-enabled/*.conf
    ……
    IncludeOptional sites-enabled/*.conf
    IncludeOptional conf-enabled/*.conf
    
    可见其引入的是*-enabled目录下的文件,所以如果想让配置生效,则需要将配置文件放于*-enabled目录下,
    实际上最好放在*-available目录下,然后在该目录下做个软链,即ln -s 命令。
    
三、配置VirtualHost
    1.在/etc/apache2/mods-enabled下做好/etc/apache2/mods-available/vhost_alias.load的软链
    2.复制修改/etc/apache2/sites-available/000-default.conf,并在/etc/apache2/sites-enabled下做软链;

四、默认打开index.*
    <VirtualHost *:80>
    ……
    <IfModule dir_module> 
    DirectoryIndex index.html index.php 
    </IfModule> 
    ……
    </VirtualHost>
    
五、配置SSL
    1.在/etc/apache2/mods-enabled下做好/etc/apache2/mods-available/ssl.conf和ssl.load的软链
    2.openssl req -x509 -newkey rsa:1024 -keyout liufei.pem -out apache.pem -nodes -days 999
        将生成的liufei.pem放到某一目录下,然后复制并修改/etc/apache2/sites-available/default-ssl.conf中的相应参数即可。
        如:SSLCertificateFile	/var/www/liufei/liufei.pem 
        并注释掉#SSLCertificateKeyFile /etc/ssl/private/ssl-cert-snakeoil.key


sudo dpkg -P mysql-server mysql-server-5.7 mysql-common mysql-server-core-5.7 php5-mysql mysql-client-5.7 mysql-client-core-5.7

./configure --prefix=/usr/local/php --with-config-file-path=/etc --enable-inline-optimization --disable-debug --disable-rpath --enable-shared --enable-opcache --enable-fpm --with-fpm-user=www --with-fpm-group=www --with-mysql=mysqlnd --with-mysqli=mysqlnd --with-pdo-mysql=mysqlnd --with-gettext --enable-mbstring --with-iconv --with-mcrypt --with-mhash --with-openssl --enable-bcmath --enable-soap  --enable-pcntl --enable-shmop --enable-sysvmsg --enable-sysvsem --enable-sysvshm --enable-sockets --with-curl --with-zlib --enable-zip --with-bz2 --with-readline --without-sqlite3 --without-pdo-sqlite --with-pear