Ubuntu18.04下基于apache2部署Zend Framework 3 MVC框架含BUG/问题解决)

Posted 狱典司

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Ubuntu18.04下基于apache2部署Zend Framework 3 MVC框架含BUG/问题解决)相关的知识,希望对你有一定的参考价值。

这部分的内容相关资料有一些旧了,存在一些版本问题,血压很容易就上来了…
我把我遇到的问题统一整理到这篇博客中,供参考。

更多的安装方式参考Zend Framework的官方资源:

Zend Framework (github.com)

下面是安装步骤:

1.安装Apache2和php

$ sudo apt-get update
$ sudo apt-get upgrade
$ sudo apt-get install apache2 
$ sudo apt-get install mysql-server mysql-client nginx php7.2-fpm php7.2-mysql php7.2-curl php7.2-gd php7.2-intl php-pear php7.2-imagick php7.2-mcrypt php7.2-memcached git git-core
$ sudo apt-get install php7.2-mbstring

注意,上述的拓展包有可能出现连接无法访问的情况(当然首先看看是不是资源名称的正则不匹配了),这个时候可以尝试去Ubuntu软件的“软件与更新”里更改一下软件源:

点击“软件与更新”后,点击“下载自:”

一般我们的默认下在源都是中国的服务器,有些资源可能在中国服务器上没有或者被墙了,这个时候我们换到mirrors.ubuntu.com这个Ubuntu的官方下载源试试,说不定能行。

2. 安装PHP Composer

$ curl -sS https://getcomposer.org/installer | sudo php
# 没有下载curl的话根据提示用apt-get install XXX 自行下载了,类推。
$ sudo mv composer.phar /usr/local/bin/composer
$ sudo chmod +x /usr/local/bin/composer

3.安装Zend Framework 3

$ cd /var/www
$ sudo git clone git://github.com/zendframework/ZendSkeletonApplication.git
$ cd ZendSkeletonApplication
$ sudo composer install

可能出现的问题与解决办法:

  1. 如果在执行sudo composer install的时候安装失败并提示错误,有可能是版本的错误:

    • 要求的php版本大概在5~7之间,最新版本的php8是不支持的,包括对应的拓展包。

    • composer的版本下载下来默认是最新的,可能看到提示说composer installer api需要^0.1.7||^1.0之类的,那我们直接给composer降级就可以,命令如下:

      如果想把composer从2版本降到具体的1.0.0版本(推荐使用)
      $ composer self-update 1.0.0
      
      如果想降到1的版本
      $ composer self-update --1
      
  2. 如果composer install之后若有警告表示无法创建XXX文件的话,使用sudo chmod -R 777 [目录路径]更改一下权限就好了。

  3. sudo composer install的时候若是一直卡在composer Updating dependencies (including require-dev),到这一步推荐使用阿里云的composer镜像,否则之后的下载全都是failed,命令如下:

    sudo composer config -g repo.packagist composer https://mirrors.aliyun.com/composer/
    
  4. 如果sudo composer install的时候出现如下报错:

    [ErrorException]                         
    Illegal offset type in isset or empty 
    

    删掉之前的ZendSkeletonApplication文件然后重写下载一个并重新sudo composer install就行了。

  5. 注意如果之前把nginx也配置在80端口的话需要先把nginx服务关掉,否则apache2服务启不来。

上述问题解决之后,sudo composer install正确执行的界面如下:

执行到一半系统会问你是否最小安装,按个人需求根据系统提示安装就好了:

成功安装完毕的提示应该是这样的:

4. 服务测试

$ php -S 0.0.0.0:8080 -t public/ public/index.php

浏览器里面输入:http://localhost:8080,若看到如下ZF的Welcome界面就说明安装成功了:

5. 配置Apache2的站点

$ sudo vim /etc/apache2/sites-available/zf.com.conf

然后编辑配置文件如下:

 <VirtualHost *:80>
 ServerName zf.com
 DocumentRoot /var/www/ZendSkeletonApplication/public
  
 <Directory /var/www/ZendSkeletonApplication/public>
 AllowOverride All
 # Require all granted # For Apache version >=2.4
 # Order allow,deny # For Apache version < 2.4
 Allow from all # For Apache version < 2.4
</Directory>
</VirtualHost>

6.激活的站点配置

$ sudo a2ensite zf.com
$ sudo service apache2 reload

如有疏漏错误之处欢迎批评指正。

以上是关于Ubuntu18.04下基于apache2部署Zend Framework 3 MVC框架含BUG/问题解决)的主要内容,如果未能解决你的问题,请参考以下文章

ubuntu18.04下Kafka安装与部署

kubeadm部署1.17.3[基于Ubuntu18.04]

kubeadm部署1.17.3[基于Ubuntu18.04]

Ubuntu18.04 apache2配置ThinkPHP6

Ubuntu18.04下搭建LAMP环境

Ubuntu18.04下搭建LAMP环境