Git Product home page Git Product logo

install's Introduction

Installation Wizard for October CMS

The wizard installation is the recommended way to install October for non-technical users. It is simpler than the command-line installation and doesn't require any special skills.

  1. Prepare a directory on your server that is empty. It can be a sub-directory, domain root or a sub-domain.
  2. Download the installer archive file.
  3. Unpack the installer archive to the prepared directory.
  4. Grant writing permissions on the installation directory and all its subdirectories and files.
  5. Navigate to the install.php script in your web browser.
  6. Follow the installation instructions.

Minimum System Requirements

October CMS has a few system requirements:

  • PHP version 8.0 or higher
  • PDO PHP Extension
  • cURL PHP Extension
  • OpenSSL PHP Extension
  • Mbstring PHP Extension
  • ZipArchive PHP Extension
  • GD PHP Extension
  • SimpleXML PHP Extension
  • 128MB or more allocated memory

OS Dependencies

Some OS distributions may require you to manually install some of the required PHP extensions.

When using Ubuntu, the following command can be run to install all required extensions:

sudo apt-get update &&
sudo apt-get install php php-ctype php-curl php-xml php-fileinfo php-gd php-json php-mbstring php-mysql php-sqlite3 php-zip

Installation with Command Line (Composer)

To install the platform using the command line, initialize a project using the create-project command in the terminal. The following command creates a new project in a directory called myoctober:

composer create-project october/october myoctober

For further information, visit the documentation for installation instructions.

install's People

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

install's Issues

Bound 'falling leaves' animation on installation successful page

Currently the animated october-leaf elements on the 'installation successful' page will extend past the edge of the screen and stretch the window:

screenshot_2014-05-15_22 32 46

Solution 1: wrap the october-leaf elements in a parent div bound to the size of the window body with overflow set to hidden

Solution 2: draw the october-leaf elements to a Canvas instead of using css.

Wizard installer fails if server has DDOS protection

The wizard installer sends multiple POST requests to determine what PHP extensions are installed. On our server it indicated that many of the extensions were not installed, despite them being shown when running phpinfo. After debugging for a while we found that the server was returning 403 because too many POST requests had been sent within a short period. The installer was incorrectly showing the extensions as missing when, in-fact, the server was returning an error code.

To get around this issue we slowed down the polling by adding a sleep function into the javascript that polls for extensions.

Ideally the script should only use one POST request for the installed extensions and get back a list of extensions, instead of asking multiple times. It should also not interpret a 403 as a missing extension.

Installation behind HTTP proxy (inc. authentication)

Basically, this issue is to request changes to allow installation behind an HTTP proxy (inc. authentication).

Quick fix was to add PROXY params to cURL (method prepareServerRequest).

Example:

    // Add proxy params
    curl_setopt($curl, CURLOPT_PROXYTYPE, 'HTTP');
    curl_setopt($curl, CURLOPT_PROXY, 'proxy:8080');
    curl_setopt($curl, CURLOPT_PROXYUSERPWD, 'user:password');

Remove install.php after successful installation

The installer should automatically remove install.php after a successful installation. If not removed, it should at least be moved to somewhere out of the web root.

The issue is that if a user forgets to remove install.php after installation has been completed, somebody with knowledge of the framework can just run the installation script again and overwrite the website.

If the developers don't find it feasible to have the installation script move or remove itself, a note should be added to the documentation to have the user do it manually.

Another possible solution would have the installer write to some form of installation_successful.txt file upon successful installation. If the installer tries to run again and that file exists, it should halt execution of the installation and remind the user to remove install.php.

Better Permissions check

If October can't create the temp folder in install_files it errors out with a generic "Package files from server are corrupt"

Line 605 should have an extra check (going to do a basic pull request on that. and that should throw another exception.

There's the same issue with the install.log not being able to be created.

Custom backend URL not displayed

Note on the finished page of the installer: doesn´t display the customized backend url, but just /backend, which seems to be a fixed value in ./install_files/js/complete.js

Error on install

Error log

[17-Apr-2015 14:30:01 UTC] PHP Fatal error:  Uncaught exception 'PDOException' with message 'SQLSTATE[42S02]: Base table or view not found: 1146 Table 'test_october.system_event_logs' doesn't exist' in W:\OpenServer\domains\test\october\vendor\laravel\framework\src\Illuminate\Database\Connection.php:358
Stack trace:
#0 W:\OpenServer\domains\test\october\vendor\laravel\framework\src\Illuminate\Database\Connection.php(358): PDO->prepare('insert into `sy...')
#1 W:\OpenServer\domains\test\october\vendor\laravel\framework\src\Illuminate\Database\Connection.php(612): Illuminate\Database\Connection->Illuminate\Database\{closure}(Object(Illuminate\Database\MySqlConnection), 'insert into `sy...', Array)
#2 W:\OpenServer\domains\test\october\vendor\laravel\framework\src\Illuminate\Database\Connection.php(576): Illuminate\Database\Connection->runQueryCallback('insert into `sy...', Array, Object(Closure))
#3 W:\OpenServer\domains\test\october\vendor\laravel\framework\src\Illuminate\Database\Connection.php(359): Illuminate\Database\Connection->run('insert into `sy. in W:\OpenServer\domains\test\october\vendor\laravel\framework\src\Illuminate\Database\Connection.php on line 620
[17-Apr-2015 14:30:01 UTC] PHP Fatal error:  Uncaught exception 'PDOException' with message 'SQLSTATE[42S02]: Base table or view not found: 1146 Table 'test_october.system_event_logs' doesn't exist' in W:\OpenServer\domains\test\october\vendor\laravel\framework\src\Illuminate\Database\Connection.php:358
Stack trace:
#0 W:\OpenServer\domains\test\october\vendor\laravel\framework\src\Illuminate\Database\Connection.php(358): PDO->prepare('insert into `sy...')
#1 W:\OpenServer\domains\test\october\vendor\laravel\framework\src\Illuminate\Database\Connection.php(612): Illuminate\Database\Connection->Illuminate\Database\{closure}(Object(Illuminate\Database\MySqlConnection), 'insert into `sy...', Array)
#2 W:\OpenServer\domains\test\october\vendor\laravel\framework\src\Illuminate\Database\Connection.php(576): Illuminate\Database\Connection->runQueryCallback('insert into `sy...', Array, Object(Closure))
#3 W:\OpenServer\domains\test\october\vendor\laravel\framework\src\Illuminate\Database\Connection.php(359): Illuminate\Database\Connection->run('insert into `sy. in W:\OpenServer\domains\test\october\vendor\laravel\framework\src\Illuminate\Database\Connection.php on line 620

Screenshot: http://screencast.com/t/jXJNyljLJ2

SQLSTATE[42000]: Syntax error ...

При установке возникает ошибка:

SQLSTATE[42000]: Syntax error or access violation: 1071 Specified key was too long; max key length is 1000 bytes (SQL: alter table system_parameters add index item_index(namespace, group, item))

php 5.5
error

Build 242. Exception after backend language change

Argument 1 passed to October\Rain\Translation\FileLoader::loadNamespaceOverrides() must be of the type array, integer given, called in ......../vendor/october/rain/src/Translation/FileLoader.php on line 72 and defined

SQLite | PDO vs SQLite3

Hi,

At the end of Installer.php - function validateSqliteFile($filename), nothing has been done to check if the module/class SQLite3 is really installed.
Maybe you should replace
new SQLite3($filename);
by
new PDO('sqlite:'.basename($filename));
which seems to be working perfectly.

Thanks

Problem with install

I have tried install October CMS again, but now it doesn't work properly. I will fix it, but I need a little help. Somebody could give me the source code of waterfall jQuery plugin?

MySQL passwords with special characters break installer

Took me a while to figure this one out but it appears when using a password like 1oinv"£$2tc, the $2 portion buggers up when building configuration files (specifically the $ character).

The result from InstallerRewrite::parseContent() ends up looking like this:

        'mysql' => array(
            'driver'    => 'mysql',
            'host'      => 'localhost',
            'port'      => 3306,
            'database'  => 'database',
            'username'  => 'username',
            'password'  => '1oinv"£'password'  => tc',
            'charset'   => 'utf8',
            'collation' => 'utf8_unicode_ci',
            'prefix'    => '',
        ),

which ends up with this error:

Unable to rewrite key "connections.mysql.host" in config, does it exist?syntax error, unexpected 'password' (T_STRING), expecting ')'

Fairly simple fix, just requires a str_replace on $replaceValue. I'll submit a pull request now.

Set limit for the encryption key

When using the installer, the text field for the key encryption seems like it doesn't have any limit, I copy pasted the key and pasted it two or three times. After installing I got the following error:

screenshot from 2014-05-17 14 52 21

I believe it could be avoided if the text field had a limit.

Optional database connection port field

I have a MySQL database open on a non-default port (3360 instead of 3306) and it'd be nice to be able to optionally specify a port for the database connection.

[Bug] Wrong key size for Mcrypt

After installing OctoberCMS using this installer I get the following error:

Exception

I guess this is caused by a change in PHP 5.6, which only allows valid key sizes for Mcrypt:

No longer allow invalid key sizes, invalid IV sizes or missing required IV in mcrypt_encrypt, mcrypt_decrypt and the deprecated mode functions.

The installer generates the key using JavaScript:

$('#advEncryptionCode').val(Math.random().toString(36).slice(2))

This line of code can result in unexpected string lengths:

Key sizes

This should be fixed ASAP. While PHP 5.6 is still in beta, it will eventually be released and people who upgrade to PHP 5.6 and installed OctoberCMS before PHP 5.6 will suddenly have a problem. Also, I don't know what the consequences of an invalid key size are.

sqlserver/IIS support abysmal. had to hack the installer.

I had to modify the database query string in the installer.

A pdo_sqlsrv driver query string looks like this:

sqlsrv:Server=127.0.0.1;Database=DBNAME","username","password"

This is in /install_files/php/Installer.php line 157

 $dsn = 'sqlsrv:Server='.$host.(empty($port) ? '':','.$_port).$_name;

That is what works for pdo sqlsrv

In the exception message if the type is SQL server add a warning that might want to try to add \SQLEXPRESS behind the server name.

it doesn't use dlib as it was set up. Please modify your installer accordingly.
Also show tables does not work on sqlserver... that's mysql, please use SELECT * FROM INFORMATION_SCHEMA.TABLES

add at line 176

elseif ($type === 'sqlsrv') {
        $fetch = $db->query("SELECT * FROM INFORMATION_SCHEMA.TABLES", PDO::FETCH_NUM);
    }

Next up... there are no rewrite rules for IIS. only apache. Please add a checkbox or a check if it's installing on IIS or apache and supply the appropriate rewrite rules.

I'll post here whatever I hack togeter to make it working :-)

Blank page on PHP < 5.4

There's a nice system check for PHP 5.4. However, when a PHP version lower than 5.4 is installed, it will just show a blank page. PHP error logs show:

PHP Parse error:  syntax error, unexpected '[' in /var/www/install_files/php/Installer.php on line 434

This line contains a call_user_func() function which tries to pass an array formatted as a short array (with the square brackets; supported since PHP 5.4). Lower versions can't process this and will throw this error.

Possible solutions

  1. Write out the array the old way, so it will at least show the "graphical" October-installer with the failed PHP 5.4 check:

            call_user_func('System\Models\Parameters::set', array(
                'system::core.hash' => post('hash'),
                'system::core.build' => post('build'),
            ));
  2. Remove the check, as it doesn't function anyway when the PHP version is non-compliant.

Write a logger

All install steps should be saved in to a log file for debugging and troubleshooting.

Installation over not empty database

When I try to install OctoberCMS over my current testing database who is not empty... Installation wizard complaint about that... This is a bug or a feature??

Thanks... OctoberCMS it's a beauty and functional CMS....

buildConfigFile() in Installer.php overwrites default port value pgsql driver

The installers "postgres.html" partial provides the correct default port for PostgreSQL (5432) as a placeholder. But during the config file building, this value is (due to being set as a placeholder) non existent in the POST data.

When commenting out the 'port' setting in the config file (for pgsql), the installer can complete the installation procedure successfully.

To fix the issue without "smell", I would recommend not writing the port configuration to the configuration file when no value is given during setup. I'll send in a PR with the fix.

Update:
A second thought to it: laravel leaves to port out in the default pgsql driver config file:
https://github.com/laravel/laravel/blob/master/app/config/database.php

But the default october version of the file seems to specifically put the 'port' setting in:
https://github.com/octobercms/october/blob/master/app/config/database.php

Since the 'key' is already present in the october version, I have decided to fill in the default port (5432) on setup.

#43

Packages are not downloaded completely

I'm trying to install october cms on a cpanel shared account. The logs suggest that the cms package is not downloaded completely. I've set all folder permissions to 777. Please take a look at the log below.
Also, where is the install app trying to download the file to. I don't see any files in install_files/temp
.============================ POST REQUEST ==========================.
[2015/08/28 12:31:18] Postback payload: Array
(
[step] => downloadCore
[meta] => Array
(
[core] => Array
(
[hash] => 982441cd5da8929a6257ee771ea8b6da
[build] => 292
[uhash] => 6a4f1564f29f93ecf8b4a8a5dcf2da57
)

    )

[handler] => onInstallStep

)

[2015/08/28 12:31:18] Install step: downloadCore
[2015/08/28 12:31:20] File hash mismatch: 982441cd5da8929a6257ee771ea8b6da (expected) vs 62780767f36e1c137d44ec33b036c13a (actual)
[2015/08/28 12:31:20] Local file size: 7974912
[2015/08/28 12:31:20] Handler error (onInstallStep): Package files from server are corrupt
[2015/08/28 12:31:20] Trace log:
#0 /home/niss/public_html/install-master/install_files/php/Installer.php(299): Installer->requestServerFile('core', '982441cd5da8929...', 'core/get', Array)
#1 /home/niss/public_html/install-master/install_files/php/Installer.php(48): Installer->onInstallStep()
#2 /home/niss/public_html/install-master/install_files/php/boot.php(74): Installer->__construct()
#3 /home/niss/public_html/install-master/install.php(1): include('/home/niss/publ...')
#4 {main}

unlink(/services.json): No such file or directory

Hello guys,

I found another issue with the installer. You can see a screenshot here: https://www.dropbox.com/s/94yyb4fgvdwqneg/Screenshot%202014-05-14%2018.30.04.png

The debug log revealed, that the issue comes from /Illuminate/Cache/Console/ClearCommand::fire() which does the following:

$this->files->delete($this->laravel['config']['app.manifest'].'/services.json');

So I dumped $this->laravel['config']['app.manifest'] and got null, however, I have no idea why.

install.log

[2014/05/14 04:38:19] Install step: createAdmin
[2014/05/14 04:38:21] Handler error (onInstallStep): unlink(/services.json): No such file or directory
[2014/05/14 04:38:21] Trace log:
#0 [internal function]: Illuminate\Exception\Handler->handleError(2, 'unlink(/service...', '/var/www/html/o...', 117, Array)
#1 /var/www/html/october/vendor/laravel/framework/src/Illuminate/Filesystem/Filesystem.php(117): unlink('/services.json')
#2 /var/www/html/october/vendor/laravel/framework/src/Illuminate/Cache/Console/ClearCommand.php(61): Illuminate\Filesystem\Filesystem->delete('/services.json')
#3 /var/www/html/october/modules/system/console/CacheClear.php(40): Illuminate\Cache\Console\ClearCommand->fire()
#4 /var/www/html/october/modules/system/console/CacheClear.php(50): System\Console\CacheClear->fire()
#5 /var/www/html/october/modules/system/classes/UpdateManager.php(106): System\Console\CacheClear::fireInternal()
#6 /var/www/html/october/install_files/php/Installer.php(448): System\Classes\UpdateManager->update()
#7 /var/www/html/october/install_files/php/Installer.php(330): Installer->createAdminAccount()
#8 /var/www/html/october/install_files/php/Installer.php(54): Installer->onInstallStep()
#9 /var/www/html/october/install_files/php/boot.php(54): Installer->__construct()
#10 /var/www/html/october/install.php(1): include('/var/www/html/o...')
#11 {main}

Maybe one of you want to look into that?

Password field required

I get an error during the installation saying the password field is required while creating the admin account, I did enter a simple password for the admin account at the beginning, but if I click "Try again" the installation finished successfully, however it does not create the admin (or any) user account.

The database works fine too and other tables are written to.

Adding new theme error

Hello,

I've installed october using ftp, just uploaded the installation files and performed the installation.

I logged in successfully and tried to add blank new theme, only loading gif appears after this and Chrome console returns the following:

http://dev.beectrl.com/backend/cms/modules/cms/widgets/mediamanager/assets/js/mediamanager-browser-min.js?v313 Failed to load resource: the server responded with a status of 404 (OK)
  http://dev.beectrl.com/backend/cms/modules/cms/widgets/mediamanager/assets/css/mediamanager.css?v313 Failed to load resource: the server responded with a status of 404 (OK)
http://dev.beectrl.com/backend/cms/modules/backend/widgets/form/assets/js/october.form.js?v313 Failed to load resource: the server responded with a status of 404 (OK)


http://dev.beectrl.com/backend/cms/modules/cms/widgets/mediamanager/assets/css/mediamanager.css?v313 Failed to load resource: the server responded with a status of 404 (OK)

I did look manually for the missing files and the "cms" folder under the "backend" is missing.

Tried to install october two times, used package from github and from your official page.

Add note to check install.log during installation failures

A lot of people are coming to IRC mentioning issues with installation which more often than not leads to them being told to check install.log. Could a note be placed on the installer to check this? It would save everyone the extra support step.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.