diff --git a/.gitattributes b/.gitattributes index e81e6ce3a031..074fc2cccc8a 100644 --- a/.gitattributes +++ b/.gitattributes @@ -15,7 +15,6 @@ contributing/ export-ignore .nojekyll export-ignore export-ignore CODE_OF_CONDUCT.md export-ignore CONTRIBUTING.md export-ignore -Vagrantfile.dist export-ignore # They don't want our test files tests/AutoReview/ export-ignore diff --git a/Vagrantfile.dist b/Vagrantfile.dist deleted file mode 100644 index e85393ff8588..000000000000 --- a/Vagrantfile.dist +++ /dev/null @@ -1,203 +0,0 @@ -# -*- mode: ruby -*- -# vi: set ft=ruby : - -# https://github.com/hashicorp/vagrant/issues/9442#issuecomment-374785457 -unless Vagrant::DEFAULT_SERVER_URL.frozen? - Vagrant::DEFAULT_SERVER_URL.replace('https://vagrantcloud.com') -end - -Vagrant.configure("2") do |config| - # VM Box - config.vm.box = "ubuntu/bionic64" - # Automatic box update checking - config.vm.box_check_update = true - - # CodeIgniter virtual host - config.vm.network "forwarded_port", guest: 80, host: 8080, host_ip: "127.0.0.1" - # Code Coverage virtual host - config.vm.network "forwarded_port", guest: 81, host: 8081, host_ip: "127.0.0.1" - # User Guide virtual host - config.vm.network "forwarded_port", guest: 82, host: 8082, host_ip: "127.0.0.1" - # MySQL server - #config.vm.network "forwarded_port", guest: 3306, host: 3307, host_ip: "127.0.0.1" - # PostgreSQL server - #config.vm.network "forwarded_port", guest: 5432, host: 5433, host_ip: "127.0.0.1" - # Memcached server - #config.vm.network "forwarded_port", guest: 11211, host: 11212, host_ip: "127.0.0.1" - # Redis server - #config.vm.network "forwarded_port", guest: 6379, host: 6380, host_ip: "127.0.0.1" - - # Add "192.168.10.10 ${VIRTUALHOST}" in your host file to access by domain - #config.vm.network "private_network", ip: "192.168.10.10" - - # Same path set in the $CODEIGNITER_PATH Provision - # "virtualbox" type allow auto-sync host to guest and guest to host - # but chmod does not work... tests will fail. - # Default rsync__args except "--copy-links", to allow phpunit correctly works by symlink - config.vm.synced_folder ".", "/var/www/codeigniter", type: "rsync", rsync__args: ["--verbose", "--archive", "--delete", "-z"] - - # Provider-specific configuration - config.vm.provider "virtualbox" do |vb| - # Display the VirtualBox GUI when booting the machine - vb.gui = false - # Customize the amount of memory on the VM: - vb.memory = "1024" - end - - # Provision - config.vm.provision "shell", inline: <<-SHELL - MYSQL_ROOT_PASS="password" - PGSQL_ROOT_PASS="password" - VIRTUALHOST="localhost" - CODEIGNITER_PATH="/var/www/codeigniter" - PHP_VERSION=7.4 - PGSQL_VERSION=10 - #APT_PROXY="192.168.10.1:3142" - - grep -q "127.0.0.1 ${VIRTUALHOST}" /etc/hosts || echo "127.0.0.1 ${VIRTUALHOST}" >> /etc/hosts - - # Creates a swap file if necessary - RAM=`awk '/MemTotal/ {print $2}' /proc/meminfo` - if [ $RAM -lt 1000000 ] && [ ! -f /swap/swapfile ]; then - echo "================================================================================" - echo "Adding swap" - echo "================================================================================" - echo "This process may take a few minutes. Please wait..." - mkdir /swap - dd if=/dev/zero of=/swap/swapfile bs=1024 count=1000000 - chmod 600 /swap/swapfile - mkswap /swap/swapfile - swapon /swap/swapfile - echo "/swap/swapfile swap swap defaults 0 0" >> /etc/fstab - echo "Done." - fi - - # Prepare to use APT Proxy - if [ ! -z $APT_PROXY ]; then - if [ ! -f /etc/apt/sources.list-origin ]; then - cp /etc/apt/sources.list /etc/apt/sources.list-origin - fi - sed -i "s/archive.ubuntu.com/${APT_PROXY}/" /etc/apt/sources.list - sed -i "s/security.ubuntu.com/${APT_PROXY}/" /etc/apt/sources.list - fi - - export DEBIAN_FRONTEND=noninteractive - - echo "================================================================================" - echo "Updating and Installing Required Packages" - echo "================================================================================" - - add-apt-repository ppa:ondrej/php - - apt-get update - - debconf-set-selections <<< "mysql-server mysql-server/root_password password ${MYSQL_ROOT_PASS}" - debconf-set-selections <<< "mysql-server mysql-server/root_password_again password ${MYSQL_ROOT_PASS}" - - apt-get install -y \ - php$PHP_VERSION apache2 composer \ - php-intl php-mbstring php-xml php-zip php-xdebug \ - php-mysql mysql-server mysql-client \ - php-pgsql postgresql-$PGSQL_VERSION \ - php-sqlite3 sqlite3 \ - php-memcached memcached \ - php-redis redis-server \ - php-curl curl \ - php-gd php-imagick \ - python-pip - - pip install sphinx sphinxcontrib-phpdomain - - apt-get autoclean - - echo "================================================================================" - echo "Preparing User Guide" - echo "================================================================================" - - cd "${CODEIGNITER_PATH}/user_guide_src/cilexer" - python setup.py install - cd .. - make html - - echo "================================================================================" - echo "Configuring Databases" - echo "================================================================================" - - sed -i "s/^bind-address/#bind-address/" /etc/mysql/mysql.conf.d/mysqld.cnf - mysql -e "CREATE DATABASE IF NOT EXISTS codeigniter COLLATE 'utf8_general_ci'; - UPDATE mysql.user SET Host='%' WHERE user='root'; - GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' WITH GRANT OPTION; - FLUSH PRIVILEGES;" -uroot -p$MYSQL_ROOT_PASS - systemctl restart mysql - - sed -i "s/^#listen_addresses = 'localhost'/listen_addresses = '*'/" /etc/postgresql/$PGSQL_VERSION/main/postgresql.conf - grep -q "host all root all md5" /etc/postgresql/$PGSQL_VERSION/main/pg_hba.conf || echo "host all root all md5" >> /etc/postgresql/$PGSQL_VERSION/main/pg_hba.conf - sudo -u postgres psql -tc "SELECT 1 FROM pg_roles WHERE rolname='root'" | grep -q 1 || sudo -u postgres psql -c "CREATE ROLE root WITH SUPERUSER CREATEDB CREATEROLE INHERIT LOGIN" - sudo -u postgres psql -c "ALTER ROLE root WITH PASSWORD '${PGSQL_ROOT_PASS}'" - sudo -u postgres psql -tc "SELECT 1 FROM pg_database WHERE datname='codeigniter'" | grep -q 1 ||sudo -u postgres psql -c "CREATE DATABASE codeigniter" - sudo -u postgres psql -c "GRANT ALL PRIVILEGES ON DATABASE codeigniter TO root" - systemctl restart postgresql - - echo "================================================================================" - echo "Configuring Memcached and Redis" - echo "================================================================================" - - sed -i "s/^bind 127.0.0.1/#bind 127.0.0.1/" /etc/redis/redis.conf - sed -i "s/^protected-mode yes/protected-mode no/" /etc/redis/redis.conf - sed -i "s/^-l 127.0.0.1/#-l 127.0.0.1/" /etc/memcached.conf - systemctl restart redis - systemctl restart memcached - - echo "================================================================================" - echo "Configuring Virtual Hosts" - echo "================================================================================" - - mkdir -p "${CODEIGNITER_PATH}/build/coverage-html" - mkdir -p "${CODEIGNITER_PATH}/public" - mkdir -p "${CODEIGNITER_PATH}/user_guide_src/build/html" - mkdir -p "${CODEIGNITER_PATH}/writable/apache" - chown -R vagrant:vagrant $CODEIGNITER_PATH - - # Creates a symlink in the user home - if [ ! -d /home/vagrant/codeigniter ]; then - ln -s $CODEIGNITER_PATH /home/vagrant/codeigniter - fi - - sed -i "s/APACHE_RUN_USER=www-data/APACHE_RUN_USER=vagrant/" /etc/apache2/envvars - sed -i "s/APACHE_RUN_GROUP=www-data/APACHE_RUN_GROUP=vagrant/" /etc/apache2/envvars - grep -q "Listen 81" /etc/apache2/ports.conf || sed -i "s/^Listen 80/Listen 80\\nListen 81\\nListen 82/" /etc/apache2/ports.conf - sed -i "s/^display_errors = Off/display_errors = On/" /etc/php/7.4/apache2/php.ini - sed -i "s/^display_startup_errors = Off/display_startup_errors = On/" /etc/php/7.4/apache2/php.ini - - echo "ServerName ${VIRTUALHOST} - - DirectoryIndex index.html index.php - Options All - AllowOverride All - - - ServerAdmin vagrant@localhost - DocumentRoot ${CODEIGNITER_PATH}/public - ErrorLog ${CODEIGNITER_PATH}/writable/apache/error.log - CustomLog ${CODEIGNITER_PATH}/writable/apache/custom.log combined - - - DocumentRoot ${CODEIGNITER_PATH}/build/coverage-html - - - DocumentRoot ${CODEIGNITER_PATH}/user_guide_src/build/html - -" > /etc/apache2/sites-available/codeigniter.conf - - a2enmod rewrite - a2dissite 000-default.conf - a2ensite codeigniter.conf - systemctl restart apache2 - - echo "================================================================================" - echo "Services Status" - echo "================================================================================" - service --status-all - - SHELL -end diff --git a/user_guide_src/source/changelogs/v4.2.2.rst b/user_guide_src/source/changelogs/v4.2.2.rst index eb457750e7c5..ffc55080d5db 100644 --- a/user_guide_src/source/changelogs/v4.2.2.rst +++ b/user_guide_src/source/changelogs/v4.2.2.rst @@ -28,6 +28,7 @@ Changes - Fixed: Validation of fields with a leading asterisk (wildcard). - Now ``CLIRequest::isCLI()`` always returns true. - Now ``IncommingRequest::isCLI()`` always returns false. +- **Vagrantfile.dist** has been moved to `CodeIgniter DevKit `_. Deprecations ************ diff --git a/user_guide_src/source/installation/running.rst b/user_guide_src/source/installation/running.rst index b2ba72d4cd7f..70ed23d22f4c 100644 --- a/user_guide_src/source/installation/running.rst +++ b/user_guide_src/source/installation/running.rst @@ -260,40 +260,6 @@ Setting Environment See :ref:`Handling Multiple Environments `. -Hosting with Vagrant -==================== - -Virtualization is an effective way to test your webapp in the environment you -plan to deploy on, even if you develop on a different one. -Even if you are using the same platform for both, virtualization provides an -isolated environment for testing. - -The codebase comes with a ``VagrantFile.dist``, that can be copied to ``VagrantFile`` -and tailored for your system, for instance enabling access to specific database or caching engines. - -Setting Up ----------- - -It assumes that you have installed `VirtualBox `_ and -`Vagrant `_ -for your platform. - -The Vagrant configuration file assumes you have set up a `ubuntu/bionic64 Vagrant box -`_ on your system:: - - vagrant box add ubuntu/bionic64 - -Testing -------- - -Once set up, you can then launch your webapp inside a VM, with the command:: - - vagrant up - -Your webapp will be accessible at ``http://localhost:8080``, with the code coverage -report for your build at ``http://localhost:8081`` and the user guide for -it at ``http://localhost:8082``. - Bootstrapping the App ===================== diff --git a/user_guide_src/source/installation/upgrading.rst b/user_guide_src/source/installation/upgrading.rst index 3570419e19c2..0a2d5a975968 100644 --- a/user_guide_src/source/installation/upgrading.rst +++ b/user_guide_src/source/installation/upgrading.rst @@ -12,6 +12,7 @@ upgrading from. .. toctree:: :titlesonly: + upgrade_422 upgrade_421 upgrade_420 upgrade_418