I'm building a CakePHP-application that people can install on their hosting.
In the meantime I'm still working on the application, so I want people to be able to update it just by clicking on an update button.
From the moment I write new code in a Controller, make new Components,..., I push it up to the "Source-server" and they click on update then they have to have all this updated code on their server as well.
I was thinking to write an exec (command line) that executes a git pull/fetch but not every hosting has git installed, so that's not the best solution.
Can somebody help me out with that?
Thanks in advance,
AƤron
You need to implement a package system: Your php script will download a zip file that contains all the code from a source, unpack it in a temporary folder, read the meta data file that tells your script what version the plugin or application code is, compare it with the running version, maybe do some security checks like a checksum or if you like to implement that a signature check. When the checks were successful you'll have to replace the existing files with the files from the package.
You could even give the option to do a rollback if you keep the zip of the previous version. Don't forget that your update code needs a way to fire database migrations as well. I would develop a "Package" or "PluginManager" plugin that does all of that. The event system can be used to trigger events when things are installed / deinstalled.
Wordpress does it this way, you might want to look at what it does but I would not recommend to take any of the fugly wordpress code, just use the concept.
Like joomla , wordpress you can create installation package which can check the current version and check server version.
stept2
after compression it create database and file backup
step3 download pakedge from server under a temp directory
step4 replace new lib with older one
step5 if update successfully then delete pkg from temp directory and delete old file backup
step6 if fail replace the site sitebackup
Related
Currently I will upload a website to a server, but before I upload it I want to run this website on my localhost (I'm using XAMPP).
They gave me an archive containing the website files, based on the structure of the webfiles I realize TYPO3 is used.
Since I never tried using TYPO3, I tried installing it I followed this steps:
here
After the installation I run the sample, so far I don't have a problem running it on my web browser.
But when I tried to run the website that I need to upload
I'm getting an error.
here are the files inside the archive.
Here is after I extract it. As you can see I wasn't able to extract typo3_src which is the target location of index.php, t3lib and typo3 file that are all both in .symlink type.
And also the typo3 is not in folder type unlike the sample I run.
I'm not sure if the archive is broken/corrupted or I need something to do first before it will work. Can someone please help me regarding this issue?
You do not need to deal with those unix symlinks at all.
Just figure out or ask the person who provided you with that system, which version of TYPO3 you need to use.
Then go to https://sourceforge.net/projects/typo3/files/TYPO3%20Source%20and%20Dummy/ and download the appropriate zip package.
Decompress the package, delete all symlinks (typo3, t3lib, index.php) and just copy the corresponding resources from the package.
You then need to deal with the database and database connection settings in typo3conf/localconf.php or typo3conf/LocalConfiguration.php.
If it all works, you can then upload it like this to the server without using any symlinks.
The title can be a little bit misleading but this is what I need to achieve.
I have a project which resides in Github. I need to install these files in multiple domains.
So just like wordpress I need to have a simple PHP installation page where I take all the necessary details like site name, DB username , DB name etc and when I click install button it is going to do the following.
> git clone the project files
> create new directory
> Run composer install (Assume the project is Laravel 4 App)
> Checking the provided DB user and pass if they are correct, if yes migrating the DB, if No redirect back with an error.
> Display the 'installation success' page if everything is OK.
I am aware that some activities may require admin privilege and I have it. The web server behind all domains is Apache. I have never done this kind of thing before and so I have no Idea where to get started. Any link or detailed explanations will be fine for now.
Checkout the project Laravel Web Installer its a step towards what you want, it will allow a user to do all the configuration from a web interface.
It also can also handle checking for server requirements, checking folder permissions, migrate the database and seed tables.
I need to install and configure an existing Laravel 4 project.
I tried to do, but when I ran composer update or composer install a lot of issues appear.
I have the database too (with data) so I ran the migration but doesn't work because the console show me an issue about the "table doesn't exist".
Can anyone tell me the complete process to configure the App?.
I mean, what its first, second and so and so because maybe in some step I made a mistake
To install and configure an existing project, you'd typically
Check out its source code
Run composer install
Run php artisan migrate
Check the README for specific instructions on installing 3rd party assets, or any additional steps you'd need to take
If the above creates errors, its either because of something in your environment (installing over an old project?) or some problem with the way the Laravel developer created their project.
To install and configure an existing project, you'd typically check those things first :
You should goto app/config/database.php check file and verify username and password.
After check in Project Folder vendor folder and composer.json file exist then remove it (that remove old configuration now we going to fresh configuration).
Then after back to command prompt and fire command composer update and that download some dependent file download.
Now Run php artisan serve
that tricks work for me last time when I migrate another host.
Carlos, when using an existing DB you'll need to check the migrations table to see which migrations have run successfully. Typically when taking over a laravel project setting up a new db and running the migrations against it is a good idea because you never know what hacks were made to the database outside the migration system. One small change can throw the entire system into a useless state because it's looking for a table or column that doesn't exist or has been modified. If you run the migrations against a bare db you can also figure out which tables were manually created (which could very well be your issue) outside the system and add them in as necessary. Cobbling things together after a previous developer is tedious, hopefully there is decent documentation.
Note that if you are using Git with .gitignore, don't forget to copy .env variables in new location too.
Just a quick one about installing a PHP website, are there any tools out there that would allow me to create an install package to fully install this website on a Windows platform? If possible maybe even take details like company name and database connections which then maybe updates the necessary PHP files?
If the later cannot be done its fine, but a free tool for installation would be great!
Thank you!
Ash.
It's possible with a tool like innosetup.
It let you build setup , in which you can put what ever you want (webpage , other setup ...).
If you want to do something a little bit advanced (installing apache , configuring file ...) you will need to do some code (delphi) , but the documentation is pretty clear about all the possibility.
Don't be fooled by the simplicity of the tool , it's very powerfull. For example you can check if a specific service is running to lauch (or not) a specific part of your setup. (if httpd is running just copy the webpage a skip the apache installation for example).
You can combine innosetup with server2go
Download the package you want as a .ZIP file, extract it, put your website in "htdocs" folder and then create an installer with innosetup.
Edit: You can edit pms_config.ini too with your needs.
I am trying to upgrade joomla 1.5.15 to 1.5.23
I have downloaded the Joomla_1.5.15_to_1.5.23-Stable-Patch_Package from the joomlacode.org.
While trying to install this package from my administrator, the error will be displayed "Error! Could not find an XML setup file in the package.".
Or
Shall I extract this zip file and upload the files to server directly through FTP?
Please advise me..
Any help appreciated.
I would recommend a 3-step process personally to ensure the best possible outcome.
First - backup your site (I LOVE Akeeba Backups 1-touch backup solution); download the backed up site and install on a local host or development server.
Second, do your upgrade there (extract the files from the .zip and put them in the localhost/dev server installation).
Make sure that the upgrade didn't break anything, that everything still works appropriately and as expected and create a backup of the localhost/dev server site.
At that point you know the upgrade won't break anything.
Third, upload the unzipped files from version 1.5.23 via FTP into your root joomla directory (complete the upgrade as listed HERE.
Doing these steps will ensure the best possible outcome and will show absolutely ZERO disruptions on your live site in the event something you're currently using doesn't like the jump from .15 to .23 - which is a large jump and a lot of things are different (including which version of mootools is included!) So take caution and TEST FIRST!
I would advice you to do this::
Assuming you have access to all the files of website.
1.Now download directly 1.5.23 or 1.5.26 version(last update patch of this series.)
2.Extract the files and open them,you will notice them you need to only replace 4-5 files in that patch.
3.Copy each file and replace them with the current files in the existing websites.
Hope this helps.